Применение match_phrase и фильтра - PullRequest
0 голосов
/ 12 ноября 2018

Работал в Elastic Search 6.4.2. Я хочу использовать match_pharse, чтобы получить результаты из моего индекса. Точно так же мне нужно применить фильтр для этого. Любое решение для этого. Я попробовал следующий запрос

{
  "query": {
    "bool": {
      "should": 
        {
          "match_phrase": {
          "title": "bike riding"
          }}

    }
  }}

Но когда я использую match_pharse, мне нужно пропустить поля, чтобы получить результаты. Я делюсь своим отображением и запросом, который мне нужно отредактировать. Любая помощь, которую я могу использовать match_phrase для запроса.

Отображение:

{
  "mapping": {
    "doc": {
      "properties": {
        "content": {
          "type": "text",
          "store": true,
          "analyzer": "my_analyzer"
        },
        "description": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "domain": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "host": {
          "type": "keyword",
          "store": true
        },
        "keywords": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "seed": {
          "type": "keyword",
          "store": true
        },
        "title": {
          "type": "text",
          "store": true,
          "analyzer": "my_analyzer"
        },
        "url": {
          "type": "text",
          "store": true
        }
      }
    }
  }
}`

Запрос: Как я могу добавить match_phrase к следующему

{
    "query": {
        "bool" : {
            "must" : {
                "query_string" : {
                    "query" : "bike riding"
                }
            },
            "filter" : {
                "term" : { "seed" : "sports" }
            }
        }
    }
}

1 Ответ

0 голосов
/ 12 ноября 2018

Ниже запрос - это то, что вы ищете.

Обратите внимание, как я добавил кавычки вокруг "\"bike riding\""

POST <your_index_name>/_search
{
  "query": {
        "bool" : {
            "must" : {
                "query_string" : {
                    "query" : "\"bike riding\""
                }
            },
            "filter" : {
                "term" : { "seed": "sports" }
            }
        }
    }

}

Дайте мне знать, если это поможет!

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