【问题标题】:Solr exact phrase match not workingSolr 精确短语匹配不起作用
【发布时间】:2014-04-18 07:39:55
【问题描述】:

我正在尝试在Solr 中设置精确的短语匹配,
它应该与“这是一个球”完全匹配包含该短语的文档,包括停用词。我将 schema.xml 配置如下,它不起作用。请让我知道我错过了什么。我是 Solr 的新手

<fieldType name="c_text" class="solr.TextField">
    <analyzer type="index">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>

    <analyzer type="query">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
</fieldType>

【问题讨论】:

    标签: solr solr4


    【解决方案1】:

    不要对该字段应用任何标记器并将其设为字符串字段。字符串字段匹配包括停用词在内的精确模式。这对你有用

    【讨论】:

    • 如果我删除 tokenizer 标签,它会显示以下错误。 没有类或标记器的分析器如果我将它设为字符串字段,它与文档不匹配。包含“这是一个球。它是红色的”
    • "this is a ball" 是您的字段的完整字符串还是子字符串?如果您想匹配完整字段,那么它将与字符串字段一起使用。但是,如果它是一个子字符串,那么除非您指定一些特定的停用词,例如“你认为;这是一个球;”,否则这是不可能的。并指定;作为停用词,您可以这样搜索。
    • 是的,它是一个子字符串。你的意思是说,Solr 中不可能进行子字符串匹配?
    • Solr 是一个索引服务器。所以你给 solr 的东西,你可以取回它。您必须找到一种方法来索引这些似乎极不可能的子字符串。或者我可以说子字符串的精确子字符串匹配是不可能的。您可以做的是创建一个多值字段并将所有子字符串保存为值列表。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    • 2019-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-12
    • 2021-03-08
    相关资源
    最近更新 更多