Каким образом ElasticSearch вычисляет частоту терминов в некорректном состоянии, например, при сопоставлении фразы «bb» в «bbbbbbbbbb»? - PullRequest
0 голосов
/ 21 января 2019

РЕДАКТИРОВАТЬ: Плохой пример, который я дал.Мой вариант использования был на самом деле китайскими иероглифами, то есть соответствием фразы "我 我" в "我 我 我 我 我 我 我 我 我 我".Поэтому для тех, кто не знаком с китайской поисковой системой, вопрос на самом деле заключается в поиске «bb» в «bbbbbbbbbb», а НЕ «bb» в «bbbbbbbbbb». Я также отредактировал заголовок, чтобы избежать путаницы.

Бонусный вопрос: с какой частотой вместо "max_expansions = 4" используется вместо "max_expansions = 4"?

оригинальный пост: Предположим, что ключевое слово для поиска - "bb", документ - "bbbbbbbbbb" (10 b).Тип анализируется, и, скажем, «b» - это «атомарный термин», который индексируется.

Я представляю, что документ представлен внутри как-то так: {'b': [0,1,2,3,4,5,6,7,8,9], метаданные: {...}} где числа являются местоположениями термина «b».Поправь меня, если я ошибаюсь.

Термин частота tf (t в d) = sqrt (частота) в соответствии с эластичной направляющей.(https://www.elastic.co/guide/en/elasticsearch/guide/current/scoring-theory.html#tf) Итак, когда "bb" - это фраза соответствует против документа с 10 b, какая частота, это 5 или 9?

1 Ответ

0 голосов
/ 21 января 2019

при использовании «стандартного анализатора» «bbbbbbbbb» будет анализироваться как «0: bbbbbbbbb», а не как {'b': [0,1,2,3,4,5,6,7,8,9].и поиск "bb" не имеет никакого результата.если фраза в документе похожа на "bbbbbbbbb", тогда {'b': [0,1,2,3,4,5,6,7,8] является правильным.но опять же, если вы будете искать "bb", результата не будет.но если вы будете искать что-то вроде «bb», оно будет анализироваться как «b» или «b», а частота в документах будет 9 (возможно, 9 + 9/2).

с этим API вы можете увидеть, как оценкабыло вычислено:

GET / my_index / doc / _search? объяснять

больше информации о выигрыше:

https://www.elastic.co/guide/en/elasticsearch/guide/current/scoring-theory.html

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