У меня есть несколько продуктов, хранящихся в индексе. Предполагая, что ниже приведен пример одного продукта:
'productID' => 'sandbag'
'productName' => 'Bag of sand'
'productDescription' => 'A bag of sand'
'sizes' => array
0 =>
'sizeID' => '1wht'
'sizeName' => '1 lb white'
1 =>
'sizeID' => '1blk'
'sizeName' => '1 lb black'
2 =>
'sizeID' => '2wht'
'sizeName' => '2 lb white'
3 =>
'sizeID' => '2blk'
'sizeName' => '2 lb black'
Запрос ElasticSearch черный 1 фунт вызывает этот продукт. Однако запрос черный 1 фунт песка не дает.
Если я заменю все пробелы на И, чтобы запрос стал черным, И 1, И фунтом, и песком , это произойдет, однако, похоже, что это приведет к уничтожению цитируемого запроса, такого как "1 фунт, черный" песок .
Мой запрос ElasticSearch выглядит так:
"query": {
"query_string": {
"query": "black 1 lb sand",
"default_operator": "AND",
"fields": ["productName", "sizes.sizeName"]
}
}
В конечном итоге цель состоит в том, чтобы иметь возможность сопоставлять размеры и название продукта (и все, что я желаю) в одном запросе, а также поддерживать цитируемые фразы («1 фунт черного»), если клиент этого желает.
Я не хочу переключать оператора на ИЛИ, поскольку это приводит к слишком большому количеству продуктов.
Помощь