我无法在SOLR搜索结果中检索带连字符的术语.例如,当我尝试搜索:超人,超人等时,我应该在搜索结果中看到超人,超人3等标题.
FieldType如下:
<fieldType name="autocomplete_edge" class="solr.TextField">
    <analyzer type="index">
        <charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt" />
        <tokenizer class="solr.KeywordTokenizerFactory" />
        <filter class="solr.LowerCaseFilterFactory" />
        <filter class="solr.PatternReplaceFilterFactory" pattern="([\.,;:-_])" replacement=" " replace="all" />
        <filter class="solr.EdgeNGramFilterFactory" maxGramSize="30" minGramSize="1" />
        <filter class="solr.PatternReplaceFilterFactory" pattern="([^\w\d\*æøåÆØÅ ])" replacement="" replace="all" />
    </analyzer>
    <analyzer type="query">
        <charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt" />
        <tokenizer class="solr.KeywordTokenizerFactory" />
        <filter class="solr.LowerCaseFilterFactory" />
        <filter class="solr.PatternReplaceFilterFactory" pattern="([\.,;:-_])" replacement=" " replace="all" />
        <filter class="solr.PatternReplaceFilterFactory" pattern="([^\w\d\*æøåÆØÅ ])" replacement="" replace="all" />
        <filter class="solr.PatternReplaceFilterFactory" pattern="^(.{30})(.*)?" replacement="$1" replace="all" />
    </analyzer>
</fieldType> 
请帮忙.
问候
我建议您使用WordDelimiterFilterFactory来满足您的用例。
WordDelimiterFilterFactory 允许您生成可以按特殊字符和数字分割的标记,并维护原始标记,以便它与搜索词匹配。
例如,
generateWordParts将转换super-man->super, man
splitOnNumerics将生成 super-man3 ->super, man, 3
catenateWords将转换super-man->superman
catenateAll将转换super-man3->superman3
所以这将使您能够匹配相同单词的组合
| 归档时间: | 
 | 
| 查看次数: | 2045 次 | 
| 最近记录: |