Заказанный поиск близости - PullRequest
1 голос
/ 04 ноября 2011

Под заказом я подразумеваю, что термин 1 всегда будет предшествовать термину 2. в документе.

У меня есть два документа: 1. "Под заказом я подразумеваю термин 1 всегда будет предшествовать термину 2 в документе" 2. "По заказуЯ имею в виду, что term2 всегда будет предшествовать term1 в документе "

, если я сделаю запрос:

"term1 term2"~Integer.MAX_VALUE

мои результаты: 2 документа

Как мне сделать запрос кимеют один результат (только если term1 предшествует term2): «Под заказом я подразумеваю, что term1 всегда будет предшествовать term2 в документе»

Любые идеи?

Ответы [ 2 ]

1 голос
/ 06 ноября 2011

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

Однако парсеры запросов dismax и edismax с Solr используют запрос фразы и, следовательно, совпадение всегда неупорядочено.

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

Подробнее @ http://www.lucidimagination.com/blog/2009/02/22/exploring-query-parsers/

0 голосов
/ 04 ноября 2011
...