"поиск фразы" в solr / lucene - PullRequest
0 голосов
/ 28 июня 2011

Я использую Solr 1.4 и Solr 4 для полнотекстового поиска внутри документов.В данный момент я не могу найти целые фразы, например «Собака бежит» в текстовом блоке: «Собака бежит по дому».Для этого теста я использую простой URL-адрес solr: http://plocalhost:8088/solr/select/?start=0&q="the собака бежит "

Я использую текстовый файл с токенами со следующими параметрами:

<fieldType name="text_de" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.StopFilterFactory"
            ignoreCase="true"
            words="stopwords-de.txt"
            enablePositionIncrements="true"
            />
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
    <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
    <filter class="solr.SnowballPorterFilterFactory" language="German" />
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.SynonymFilterFactory" synonyms="synonyms-de.txt" ignoreCase="true" expand="true"/>
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
    <filter class="solr.SnowballPorterFilterFactory" language="German" />
  </analyzer>
</fieldType>

Понятия не имею, почему это не работает. :-( ... спасибо за любую подсказку.

1 Ответ

2 голосов
/ 08 июля 2011

Чтобы ответить на мой вопрос:

Анализатор времени индекса использует список стоп-слов, в то время как анализатор времени запроса НЕ использует список стоп-слов. Таким образом, фраза в индексе не совпадает с фразой во время запроса.

Мне нужно было только добавить StopFilterFactory в анализаторе «query».

...