Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Filter Solr搜索/刻面结果有奇怪的行为:我只得到;词干;字符串(希望它的定义正确)_Filter_Solr_Stemming_Facets - Fatal编程技术网

Filter Solr搜索/刻面结果有奇怪的行为:我只得到;词干;字符串(希望它的定义正确)

Filter Solr搜索/刻面结果有奇怪的行为:我只得到;词干;字符串(希望它的定义正确),filter,solr,stemming,facets,Filter,Solr,Stemming,Facets,很抱歉这个标题这么糟糕,但我不知道如何描述我的问题。 我正在使用sunburnt(python接口)在django应用程序中查询solr。 当我搜索时,一切正常,我得到了完整的字符串。 另一方面,如果我在刻面(比如在“job_title”字段),我只得到词干单词 像这样: <lst name="job_title"> <int name="manag">17095</int> <int name="sale">7689</in

很抱歉这个标题这么糟糕,但我不知道如何描述我的问题。 我正在使用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>

17095
7689
6995
4907
4710
4509
4366
等等。。。 这是我的文本字段类型定义:

<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是把事情搞砸的一个,但我需要它来激活建议。有什么帮助吗?

这就是为什么您通常在未分析的字段上刻面。添加另一个StrField类型的字段,使用copyField指令获取数据,并在这个新字符串字段上刻面。

如果您认为我的问题的标题不好,这里的建议是可以接受的,可以更改它:)谢谢,这很有效:)实际上不是我想的,但因为我没有考虑它,我将使用此解决方案:)再次感谢!