Elasticsearch запрос с несколькими префиксами ИЛИ соответствие - PullRequest
0 голосов
/ 13 сентября 2018

Я хотел бы выполнить следующую задачу (выраженную в виде эквивалентного SQL-запроса)

WHERE field1 LIKE 'FOO%' OR field2 LIKE 'FOO%'

Но скажем boost field2 (т. Е. Если в документе только 1 из двух полей) документ, который соответствуетПоле 2 усилено

Как мне сделать это в Elasticsearch?Я бесконечно изучал документацию и все больше запутывался

Я пробовал:

POST securities/_search
{
  "query": {
    "bool": {
      "minimum_should_match": 1, 
      "should": [
        {
            "match_phrase_prefix": {
              "field2": "FOO"
            }
        },
        {
          "match_phrase_prefix": {
              "field2": "FOO"
          }
        }
      ]
    }
  }
}

, но я не могу указать повышение из bool.should[*]. match_phrase_prefix

Я вижу, что есть свойство boost , которое я могу указать на уровне bool , но я не уверен, как этоприложенное

1 Ответ

0 голосов
/ 14 сентября 2018

Чтобы это работало, вы должны изменить это:

"match_phrase_prefix": {
    "field2": "FOO"
}

на следующее:

"match_phrase_prefix": {
    "field2": {
        "value": "FOO",
        "boost": 2.0
    }
}

Это должен быть правильный синтаксис для повышения.

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