1

我有一个包含

... Sie kennen zentrale Stationen des Lebenswegs Muhammads. • Sie ke ...

我已经这样配置了

    <fieldType name="text" class="solr.TextField" positionIncrementGap="100">
        <analyzer>
            <tokenizer class="solr.WhitespaceTokenizerFactory" />
            <filter class="solr.WordDelimiterFilterFactory" 
                    generateWordParts="1" generateNumberParts="0" catenateWords="1"
                    catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"
                    splitOnNumerics="0" stemEnglishPossessive="0"/>
            <filter class="solr.LowerCaseFilterFactory" />
            <filter class="solr.ReversedWildcardFilterFactory" />
            <filter class="solr.LengthFilterFactory" min="1" max="100" />
        </analyzer>
    </fieldType>

q=volltext:lebenswegs
q=volltext:Lebenswegs

没有结果,为什么?

q=volltext:lebensweg*

找到文档

我正在使用 solr 1.4

编辑:

拆分配置

    <fieldType name="text" class="solr.TextField" positionIncrementGap="100">
        <analyzer type="index">
            <tokenizer class="solr.WhitespaceTokenizerFactory" />
            <filter class="solr.WordDelimiterFilterFactory" 
                    generateWordParts="1" generateNumberParts="0" catenateWords="1"
                    catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"
                    splitOnNumerics="0" stemEnglishPossessive="0"/>
            <filter class="solr.LowerCaseFilterFactory" />
            <filter class="solr.ReversedWildcardFilterFactory" />
            <filter class="solr.LengthFilterFactory" min="1" max="100" />
        </analyzer>
        <analyzer type="query">
            <tokenizer class="solr.WhitespaceTokenizerFactory" />
            <filter class="solr.WordDelimiterFilterFactory" 
                    generateWordParts="1" generateNumberParts="0" catenateWords="1"
                    catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"
                    splitOnNumerics="0" stemEnglishPossessive="0"/>
            <filter class="solr.LowerCaseFilterFactory" />
            <filter class="solr.LengthFilterFactory" min="1" max="100" />
        </analyzer>
    </fieldType>

导致相同的结果

分析结果

分析器似乎匹配,但我的查询结果为空

查询调试:

<lst name="debug">
 <str name="rawquerystring">volltext:Lebenswegs</str>
 <str name="querystring">volltext:Lebenswegs</str>
 <str name="parsedquery">volltext:lebenswegs</str>
 <str name="parsedquery_toString">volltext:lebenswegs</str>
 <lst name="explain"/>
 <str name="QParser">LuceneQParser</str>
 <lst name="timing">
  <double name="time">1.0</double>
  <lst name="prepare">
    <double name="time">1.0</double>
    <lst name="org.apache.solr.handler.component.QueryComponent">
     <double name="time">0.0</double>
    </lst>
    <lst name="org.apache.solr.handler.component.FacetComponent">
     <double name="time">0.0</double>
    </lst>
    <lst name="org.apache.solr.handler.component.MoreLikeThisComponent">
     <double name="time">0.0</double>
    </lst>
    <lst name="org.apache.solr.handler.component.HighlightComponent">
     <double name="time">0.0</double>
    </lst>
    <lst name="org.apache.solr.handler.component.StatsComponent">
     <double name="time">0.0</double>
    </lst>
    <lst name="org.apache.solr.handler.component.DebugComponent">
     <double name="time">1.0</double>
    </lst>
  </lst>
  <lst name="process">
    <double name="time">0.0</double>
    <lst name="org.apache.solr.handler.component.QueryComponent">
     <double name="time">0.0</double>
    </lst>
    <lst name="org.apache.solr.handler.component.FacetComponent">
     <double name="time">0.0</double>
    </lst>
    <lst name="org.apache.solr.handler.component.MoreLikeThisComponent">
     <double name="time">0.0</double>
    </lst>
    <lst name="org.apache.solr.handler.component.HighlightComponent">
     <double name="time">0.0</double>
    </lst>
    <lst name="org.apache.solr.handler.component.StatsComponent">
     <double name="time">0.0</double>
    </lst>
    <lst name="org.apache.solr.handler.component.DebugComponent">
     <double name="time">0.0</double>
    </lst>
  </lst>
 </lst>
</lst>
4

1 回答 1

1

可能唯一的原因可能是:-

<filter class="solr.ReversedWildcardFilterFactory" />

文档:-

反转标记以提供更快的前导通配符和前缀查询的过滤器。将此过滤器添加到索引分析器,而不是查询分析器。标准 Solr 查询解析器 (SolrQuerySyntax) 将使用它来反转通配符和前缀查询以提高性能(例如,将 myfield: foo 转换为 myfield:oof)。为避免冲突和错误匹配,反向标记使用不应出现在索引文本中的前缀进行索引。

因此,它似乎适用于通配符,但不适用于普通查询。
您可以尝试将其从查询分析器中删除并检查。

于 2012-12-20T12:27:47.230 回答