2

抱歉标题这么差,但我不知道如何描述我的问题。我正在使用 sunburnt(python 界面)在我的 django 应用程序中查询 solr。当我搜索时,一切正常,我得到了完整的字符串。另一方面,如果我正在分面(比如说在“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 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 是把事情搞砸了,但我需要它来激活建议。有什么帮助吗?

4

1 回答 1

2

这就是为什么你通常在未分析的领域上分面。添加另一个具有 StrField 类型的字段,使用 copyField 指令在那里获取数据,并在这个新的字符串字段上进行构面。

于 2011-07-21T13:47:20.720 回答