Эластичный поиск: результаты поиска с «Точным соответствием» в строке «query_string» без указания поля - PullRequest
1 голос
/ 05 июля 2019

Я использую query_string для поиска записей в Elastic,

Пример запроса:

GET /stories_qa/_search
{
  "query": {
    "query_string": {
      "query": "Johnson && Johnson"
    }
  }
}

Этот запрос дает мне релевантные записи, но точная запись соответствия не на вершине, я выяснил, как мы можем увеличить записи на основе определенных полей, но в моем случае я не хочу предоставлять поле и производить поиск ограничительный, есть ли возможность в ElasticSearch добиться того же.

Ответы [ 2 ]

0 голосов
/ 05 июля 2019

Это помогло бы с примерами, но вы можете использовать phrase_match query , добавив двойную кавычку. Если вы добавите повышение к запросу phrase_match, вы сможете получить точное совпадение с более высоким рейтингом.

Следующий запрос должен делать то, что вы хотите.

GET /stories_qa/_search
{
  "query": {
    "query_string": {
      "query": "(\"Johnson && Johnson\")^2 OR (Johnson && Johnson)"
    }
  }
}
0 голосов
/ 05 июля 2019

Вероятно, вы можете сделать что-то, как показано ниже, но тщательно протестируйте и протестируйте несколько сценариев, прежде чем переходить к производству.

POST <your_index_name>/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "bool": {
            "must": [
              {
                "query_string": {
                  "query": "\"Karnataka Delhi\"",
                  "default_operator": "AND"
                }
              }
            ]
          }
        },
        {
          "query_string": {
            "query": "Karnataka Delhi",
            "default_operator": "OR",
            "boost": 2
          }
        },
        {
          "query_string": {
            "query": "Karnataka Delhi",
            "default_operator": "AND",
            "boost": 4
          }
        }
      ]
    }
  }
}

Надеюсь, это поможет!

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