Я полагаю, что вы назвали бы анализ вероятности появления слов вместе упрощенной формой контекста, и я думаю, что в запросе это будет очень подвержено ошибкам и приведет к тому, что вы пропустите релевантные результаты. Это очень сложная задача с полными контекстными предложениями. Неоднозначности в введенных пользователем строках запроса, как вы можете ожидать, будут неразрешимо двусмысленными, и поэтому попытка их разрешения, я полагаю, сделает ваш поиск досадно непредсказуемым и может даже сделать поиск некоторых понятий трудным или невозможным.
Моя рекомендация, насколько это того стоит, заключалась бы в поиске обоих альтернативных переводов, используя такую реализацию, как SynonymFilter.
Поэтому, если бы я искал английское слово "fine"
, на испанском языке я мог бы разбить его на запрос "multa fino sutil"
.
Вероятно, имеет смысл заключить эти списки синонимов в DisjunctionMaxQuery для защиты от обращений к нескольким переводам одного и того же термина, влияющих на оценку больше, чем следовало бы. Так что если искать
Я мог бы искать отличный аргумент, сделанный в дебатах, заточенный карандаш, или, зная, как пользователи вводят запросы, я вполне мог бы искать хорошее место для пикника, или обоснование штрафа за нарушение правил дорожного движения.
Итак, я мог бы расширить его до:
BooleanQuery
, joining:
DisjunctionMaxQuery
: "multa", "fino", "sutil"
DisjunctionMaxQuery
: "пунта", "моменто", "лугар"
12.03.2013