Indexing 带*的Solr结果为空,不带*的Solr结果为空

Indexing 带*的Solr结果为空,不带*的Solr结果为空,indexing,solr,prefix,Indexing,Solr,Prefix,我有一个值为“object-a1”的文本字段 当我搜索:object-a时,我得到了这个对象。 当我搜索:object-a*时,我得到一个空结果 我的字段的索引如下所示: <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <tokenizer class="

我有一个值为“object-a1”的文本字段 当我搜索:object-a时,我得到了这个对象。 当我搜索:object-a*时,我得到一个空结果

我的字段的索引如下所示:

     <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
        <analyzer type="index">
            <tokenizer class="solr.KeywordTokenizerFactory"/>
            <filter class="solr.WordDelimiterFilterFactory" 
                    splitOnNumerics="0" 
                    splitOnCaseChange="0"
                    preserveOriginal="1"/>
            <filter class="solr.LowerCaseFilterFactory"/>
        </analyzer>
        <analyzer type="query">
            <tokenizer class="solr.KeywordTokenizerFactory"/>
            <filter class="solr.WordDelimiterFilterFactory" 
                    splitOnNumerics="0" 
                    splitOnCaseChange="0"
                    preserveOriginal="1"/>
            <filter class="solr.LowerCaseFilterFactory"/>
        </analyzer>
    </fieldType>

有什么想法吗


谢谢

按照下面的链接尝试此属性

catenateAll="1" causes all subword parts to be catenated: 

当您使用通配符(*)时,您遇到了一个名为Solr的鲜为人知的问题。具体来说,WordDelimiterFilterFactory不支持多项(无(多)标记,以此类推)


通配符效率不高,您可能想考虑在链的末尾使用,

谢谢!很高兴知道这一点,但我没有找到一个能像wordDelimiter那样工作的多术语工厂。没有一个。这就是为什么我说尝试在单词分隔符之后使用EdgeGram,而不是使用通配符。