Я использую Elastic search-1.2.2.фильтр + сортировка не работает в поиске эластичности
Здесь я должен сделать комбинацию фильтра + сортировку. Необходимо получить значение сортировки по отношению к фильтру
Мне не нравится использовать фасет, поскольку он устарел. Фильтр запросов не поддерживает И фильтр, поэтому я попытался упомянуть boolFilter и указал его как пост-фильтр в searchQueryBuilder. Запрос:
{
"from": 0,
"size": 10,
"sort": [
{
"display_order": {
"order": "asc"
}
}
],
"post_filter": {
"bool": {
"must": {
"and": {
"filters": [
{
"term": {
"item_ids": ["564279ac-a887-4a0b-99e9-5802b4508747","564279ac-a887-4a0b-99e9-5802b4508447","564279ac-a887-4a0b-99e9-5302b4508747"]
}
}
]
}
}
}
}
}
, но этот запрос только фильтровать записи, soting не работает здесь.
ли я что-то не так?
да этот запрос будет Сюита для моего конкретного сценария. , но я использую функцию общего фильтра, , которая добавит несколько фильтров во время выполнения. Почему я использовал boolFilter? Для того, чтобы выполнить настройку нескольких фильтров, зависит время отбираемого фильтра bool. Здесь моя логика фильтра включает фильтр bool + (ИЛИ или ИЛИ). Спасибо за объяснение о post_filter, можете ли вы объяснить мне, как я могу добавить фильтр bool в поисках QueryBuilder. Я использовал эту строку в JAVA searchQueryBuilder.setPostFilter (boolFilter); – kumar
не объединяйте «bool» с «и» - используйте тот или иной. –
, так что вы можете направить меня, как я могу достичь этого условия. (item_id == 1 && name == "John") || (product_id == 234 && vendor! = "youtube") && (date> = "2014-11-01" && date <= "2014-11-18") Для того, чтобы соответствовать этим условиям, я использую комбинацию bool + AND. Какова будет причина для того, чтобы не использовать bool + и сочетание ?. – kumar