带有连字符和驼色大小写的Solr搜索未返回预期结果

q8l4jmvw  于 2022-09-27  发布在  Solr
关注(0)|答案(1)|浏览(133)

我有一个solr搜索应用程序,它在字段值同时使用camelcased和hyphenated的特定情况下失败。尽管solr中的字段分析页面与术语相匹配,但这些案例各自都很好,尽管在一起没有匹配项。
例如:
字段myField包含值camelCase连字符。尽管我的WordDelimiterFilterFactory设置将整个术语连接起来,然后再连接一个LowerCaseFilterFactor,但查询值为camelcase连字符(注意这不是驼峰大小写)时,没有匹配项。
分析页面显示匹配项,但执行实际搜索不会产生任何结果。请参见下文。
我的字段类型分析是

<fieldtype name="textBlock" class="solr.TextField" positionIncrementGap="100">
        <analyzer type="index">
                <tokenizer class="solr.WhitespaceTokenizerFactory"/>
                <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt"
                        ignoreCase="true" expand="true"/>
                <filter class="solr.StopFilterFactory" ignoreCase="true"
                        words="stopwords.txt"/>
                <filter class="solr.WordDelimiterFilterFactory"
                        generateWordParts="1" generateNumberParts="1"
                        catenateWords="1" catenateNumbers="1" catenateAll="1" preserveOriginal="1"/>
                <filter class="solr.LowerCaseFilterFactory"/>
                <filter class="solr.EnglishPorterFilterFactory"
                        protected="protwords.txt"/>
                <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
        </analyzer>
        <analyzer type="query">
                <tokenizer class="solr.WhitespaceTokenizerFactory"/>
                <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt"
                        ignoreCase="true" expand="true"/>
                <filter class="solr.StopFilterFactory" ignoreCase="true"
                        words="stopwords.txt"/>
                <filter class="solr.WordDelimiterFilterFactory"
                        generateWordParts="1" generateNumberParts="1"
                        catenateWords="1" catenateNumbers="1" catenateAll="1" preserveOriginal="1"/>
                <filter class="solr.LowerCaseFilterFactory"/>
                <filter class="solr.EnglishPorterFilterFactory"
                        protected="protwords.txt"/>
                <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
        </analyzer>
</fieldtype>

我正在使用Solr 3.6.1和edismax。
任何帮助都将不胜感激。
更新:
Verbose field analysis output
Debug response

sxpgvts3

sxpgvts31#

查看您在此处发布的调试响应Debug Response,我可以看到您的搜索至少与一个文档匹配,因此它如您所期望的那样工作。

<result name="response" numFound="1" start="0">
      <doc>
        <str name="a_searchable_name_t">camelcase-hyphen</str>
      </doc>
    </result>

看看numFound=1,它正在进行匹配,但我想你仍然认为你没有得到任何结果。对不起,我想把它作为后续评论发布,但格式和字符限制不允许详细说明。

相关问题