Должен ли в качестве фильтра контекст (или без оценки в Elasticsarch возможно?) - PullRequest
1 голос
/ 08 марта 2019

Я пытаюсь настроить наиболее эффективный способ построения ИЛИ без скоринга, поскольку впоследствии я хочу упорядочить свои результаты по бизнес-ценностям.

К сожалению, я этого не делаю.: (

Что мне нужно :

COLOR=X AND ( title = Y OR description = Z)

То, что я пытался (но это неправильно) :

{
"query": {
    "bool": {
        "filter": [
            {
                "term": {
                    "colors.source_name": "braun"
                }
            },
            {
                "should": [
                    {
                        "term": {
                            "title": "sofa"
                        }
                    },
                    {
                        "term": {
                            "description": "sofa"
                        }
                    }
                ]
            }
        ]
    }
}

То, что я тоже пробовал, но оно также дало результаты без «gartenlounge», и особенно с оценкой:

{
"query": {
    "bool": {
        "filter": [
            {
                "term": {
                    "colors.source_name": "braun"
                }
            }
        ],
        "should": [
            {
                "term": {
                    "title": "sofa"
                }
            },
            {
                "term": {
                    "description": "sofa"
                }
            }
        ]
    }
}

1 Ответ

4 голосов
/ 08 марта 2019

Следующий запрос должен работать у вас:

{
  "query": {
    "bool": {
      "filter": [
        {"term": {
          "colors.source_name": "braun"
        }},
        {"bool": {
          "should": [
            {"term": {"title": "sofa"}},
            {"term": {"description": "sofa"}}
            ]
        }}
      ]
    }
  }
}

Вы можете вложить запрос bool в контекст filter, а should действителен только внутри предложения bool.

Это старый справочник, сэр, но он все еще проверяет:

https://www.elastic.co/guide/en/elasticsearch/guide/current/combining-filters.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...