Как получить документы исключительно на основе периодичности? - PullRequest
0 голосов
/ 05 мая 2019

У меня есть поле comment в индексе. У меня есть три документа со значением поля comment как:

world and hello
hello world
world world world

Я хочу получить документы, отсортированные по частоте слов. Итак, если я введу world hello, результат должен быть:

    world world world
    hello world
    world and hello 

world world world имеет частоту 3 (3 * мир)
hello world имеет частоту 2 (1 * привет + 1 * мир)
world and hello имеет частоту 2 (1 * мир + 1 * привет)

Я пытался сделать это, используя запрос ниже:

{
  "query" : {
    "bool" : {
      "should" : [ {          
        "match" : {
          "comment" : {
            "query": "hello world", 
            "boost":10.0
          }
        }
      }
      ]
    }
  }
}

Но это дает мне вывод:

    hello world
    world world world
    world and hello

Что я делаю не так?

1 Ответ

0 голосов
/ 06 мая 2019

Вы не делаете ничего плохого, эластичный оценка релевантности просто сложнее, чем вы думаете.

Например, когда я моделирую ваш пример, я получаю разные результаты, это может быть связано с многочисленными причинами, упомянутыми в документах, такими как длина поля, частота слагаемых и т. Д.

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

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