Результаты поиска / огранки в Solr имеют странное поведение: я получаю только «стеблевые» строки (надеюсь, это правильное определение) - PullRequest
2 голосов
/ 21 июля 2011

Извините за плохой заголовок, но я не знал, как описать мою проблему.Я использую Sunburnt (интерфейс Python) для запроса Solr в моем приложении Django.Когда я ищу, все в порядке, я получаю полную строку.С другой стороны, если я ограняюсь (скажем, в поле "job_title"), я получаю только слова со стеблем

Вот так:

<lst name="job_title">
    <int name="manag">17095</int>
    <int name="sale">7689</int>
    <int name="engin">6995</int>
    <int name="consult">4907</int>
    <int name="account">4710</int>
    <int name="develop">4509</int>
    <int name="senior">4366</int>

и так далее ..Это мое текстовое определение fieldType:

<fieldType name="text" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true">
  <analyzer>
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.StopFilterFactory"
            ignoreCase="true"
            words="stopwords.txt"
            enablePositionIncrements="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.PorterStemFilterFactory"/>
  </analyzer>
</fieldType>

Я думаю, что PorterStemFilter - это то, что все портит, но мне нужно, чтобы он активировал предложения.Любая помощь?

1 Ответ

1 голос
/ 21 июля 2011

Вот почему вы обычно сталкиваетесь с неанализированными полями. Добавьте другое поле с типом StrField, используйте директиву copyField для получения данных и добавьте фасет в это новое строковое поле.

...