Solr - соответствует только точной фразе - PullRequest
0 голосов
/ 22 февраля 2012

У меня проблема с запросом фразы.

Ввод запроса: "ко многим результатам"

Я хочу, чтобы только текст содержал точно совпадающую фразу:

  1. "слово слово слово для многих результатов слово слово слово"

  2. "слово слово для многих результатов слово"

Но проблема в следующем:

  1. "слово слово слово для многих результатов слово слово слово"

  2. "слово слово для многих результатов слово"

  3. "слово много результатов слово" - Я не хочу, чтобы это было в моем результате

Схема:

<fieldType name="text" class="solr.TextField" termVectors="true" termPositions="true" termOffsets="true" autoGeneratePhraseQueries="true">
<analyzer type="index">
    <tokenizer class="solr.StandardTokenizerFactory" />
    <filter class="solr.TrimFilterFactory" />
    <filter class="solr.LowerCaseFilterFactory" />
    <filter class="solr.ReversedWildcardFilterFactory" />
</analyzer>
<analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory" />
    <filter class="solr.TrimFilterFactory" />
    <filter class="solr.LowerCaseFilterFactory" />
</analyzer>

Спасибо за помощь

1 Ответ

2 голосов
/ 23 февраля 2012

Если вам нужно точное совпадение фразы в том же порядке, вам нужно будет передать запрос во фразе, например, «ко многим результатам».
Это вернет результаты для точного соответствия и всех слов вместе.

Если запрос не является запросом фразы и ему нужны только все слова, поиск будет искать слова в документе в некоторых позициях (зависит от определения slop), а оператор поиска по умолчанию, для которого по умолчанию используется значение OR.

Если вы используете dismax , его управление осуществляется с помощью запроса для qf и Минимальное совпадение (мм) , количество терминов, которые должны присутствовать в документе, чтобы он был возвращен в результате.

Если вы используете стандартный обработчик запросов , вам нужно проверить оператор парсера запросов по умолчанию .

http://wiki.apache.org/solr/SchemaXml#Default_query_parser_operator

...