Я прочитал документацию BoolQuery и в соответствии с этим, это цель,
фильтр
Предложение (запрос) должен присутствовать в соответствующих документах.Однако, в отличие от этого, оценка запроса будет игнорироваться.Предложения фильтра выполняются в контексте фильтра, это означает, что оценка игнорируется, а предложения рассматриваются для кэширования.
Также из класса BoolQueryBuilder:
/**
* Adds a query that <b>must</b> appear in the matching documents but will
* not contribute to scoring. No {@code null} value allowed.
*/
public BoolQueryBuilder filter(QueryBuilder queryBuilder) {
if (queryBuilder == null) {
throw new IllegalArgumentException("inner bool query clause cannot be null");
}
filterClauses.add(queryBuilder);
return this;
}
, но я не могу получить свойголова вокруг, это.Когда я должен использовать фильтр против (должен или должен)
Вот пример, над которым я работаю:
Я хочу отфильтровать некоторые записи на основе следующих предположений:
Выбрать все
1) Записи, где deleted=0
и isPrivate=true
И
2) Записи, где (isPrivate=false or [isPrivate=true and
createdBy=loggedInUser])
Вот 2 запроса, которые дают один и тот же результат, я хочу знать, что означает filter
запрос
Результат без фильтра, использующий предложение must и must.
"query": {
"bool": {
"must": [
{
"term": {
"deleted": {
"value": "0",
"boost": 1
}
}
},
{
"match": {
"isPrivate": {
"query": true
}
}
},
{
"bool": {
"should": [
{
"term": {
"isPrivate": {
"value": "false",
"boost": 1
}
}
},
{
"bool": {
"must": [
{
"term": {
"createdBy": {
"value": "1742991596",
"boost": 1
}
}
},
{
"term": {
"isPrivate": {
"value": "true",
"boost": 1
}
}
}
],
"adjust_pure_negative": true,
"boost": 1
}
}
]
}
}
]
}
},
Запрос с использованием фильтра
"query": {
"bool": {
"adjust_pure_negative": true,
"boost": 1,
"filter": [
{
"bool": {
"must": [
{
"term": {
"deleted": {
"value": "0",
"boost": 1
}
}
},
{
"match": {
"isPrivate": {
"query": true
}
}
}
],
"should": [
{
"term": {
"isPrivate": {
"value": "false",
"boost": 1
}
}
},
{
"bool": {
"must": [
{
"term": {
"createdBy": {
"value": "1742991596",
"boost": 1
}
}
},
{
"term": {
"isPrivate": {
"value": "true",
"boost": 1
}
}
}
],
"adjust_pure_negative": true,
"boost": 1
}
}
],
"adjust_pure_negative": true,
"boost": 1
}
}
]
}
}