#1906 fixed search multi keys (ajax query params miswrited qs.stringify arrayFormat)

This commit is contained in:
Bachir Soussi Chiadmi 2022-09-13 12:29:38 +02:00
parent 40b7e75d44
commit 1565ce8aa2
4 changed files with 30 additions and 8 deletions

View File

@ -43,8 +43,19 @@ class Base extends ControllerBase {
'uuids' => [],
'nids' => []
];
// PHRASE QUERY
// ,---.| ,---.
// |---'|---.,---.,---.,---.,---. | |. .,---.,---., .
// | | || ,---|`---.|---' | || ||---'| | |
// ` ` '` `---^`---'`---' `---\`---'`---'` `---|
// `---'
// (to match exact materials names (like "wood-skin"))
$this->phrase_query = $this->index->query(['offset'=>0,'limit'=>10000]);
// set parse mode and conjunction
@ -82,7 +93,12 @@ class Base extends ControllerBase {
}
// AND QUERY
// ,---. | ,---.
// |---|,---.,---| | |. .,---.,---., .
// | || || | | || ||---'| | |
// ` '` '`---' `---\`---'`---'` `---|
// `---'
$this->and_query = $this->index->query(['offset'=>0,'limit'=>10000]);
// set parse mode and conjunction
$parse_mode = \Drupal::service('plugin.manager.search_api.parse_mode')
@ -191,9 +207,12 @@ class Base extends ControllerBase {
$this->exactematch_count = count($this->results['nids']);
//
// OR QUERY
//
// ,---. ,---.
// | |,---. | |. .,---.,---., .
// | || | || ||---'| | |
// `---'` `---\`---'`---'` `---|
// `---'
$this->or_query = $this->index->query(['offset'=>0,'limit'=>10000]);
// Change the parse mode for the search.

File diff suppressed because one or more lines are too long

View File

@ -135,7 +135,7 @@ export default {
},
getResults ({ dispatch, commit, state }) {
const params = {
keys: state.keys,
keys: state.keys.join(', '),
terms: JSON.stringify(state.terms),
offset: state.offset,
limit: state.limit
@ -147,6 +147,9 @@ export default {
}
// console.log('Search getResults params', params)
const q = qs.stringify(params)
// * Qs.Stringify () Arrayformat: 'Repeat' : https://programmerall.com/article/31901061156/
// const q = qs.stringify(params, { arrayFormat: 'comma', encode: false })
// * arrayFormat is not working, made state.keys.join(', ') instead
return MA.get('/materio_sapi/getresults?' + q)
.then(({ data }) => {
console.log('search MA getresults data', data, state.terms)