【问题标题】:How do I search for an Exact phrase in Solr如何在 Solr 中搜索精确短语
【发布时间】:2018-07-10 06:15:41
【问题描述】:

如何在 solr 中搜索准确的短语。假设,当我搜索“How_to_Search_this”时,它应该给我
的结果 1.“how_to_search_this”(不区分大小写)
2.“如何搜索这个”

但不是这样的结果
1.“How_to_search_this_thing”
2. “How_to_search_that_thing”

请帮忙。谢谢!

【问题讨论】:

    标签: solr opentext


    【解决方案1】:

    只获取精确的小写匹配项,使用 KeywordTokenizer。 KeywordTokenizer 将输入字符串保留为单个标记,但 string 的作用相同,KeywordTokenizer 也允许您附加过滤器。

    <fieldType name="string_ci" class="solr.TextField" sortMissingLast="true" omitNorms="true">
        <analyzer>
            <tokenizer class="solr.KeywordTokenizerFactory"/>           
            <filter class="solr.LowerCaseFilterFactory" />
        </analyzer>
    </fieldType>
    

    这只会在查询值与索引值相同时为您提供命中,除了大小写。

    【讨论】:

    • 其实我已经在使用 solr.NGramTokenizerFactory 分词器了。我需要它来满足其他要求。我们不能使用这个分词器实现精确短语搜索吗?
    • 针对不同的需求和用例使用不同的字段。 NgramTokenizer 不适合精确的短语搜索,因为它会为每个术语生成 许多 标记。使用copyField 将相同的内容索引到多个字段中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    相关资源
    最近更新 更多