gpt4 book ai didi

solr - 特殊字符(-&+ 等)在 SOLR 查询中不起作用

转载 作者:行者123 更新时间:2023-12-05 01:15:45 29 4
gpt4 key购买 nike

我正在使用“text_general” fieldType 在 SOLR 中进行搜索。在使用特殊字符搜索时,我没有得到正确的结果并出现错误。我想使用这样的特殊字符:

  • -
  • &
  • +

  • 询问
  • solr?q=Healing - Live
  • solr?q=Healing & Live

  • 错误信息

    The request sent by the client was syntactically incorrect (org.apache.lucene.queryParser.ParseException: Cannot parse '("Healing \': Lexical error at line 1, column 8. Encountered: after : "\"Healing \").



    架构.xml
    <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
    <filter class="solr.ASCIIFoldingFilterFactory" />
    <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
    <analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
    <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
    <filter class="solr.ASCIIFoldingFilterFactory" />
    <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
    </fieldType>


    <field name="title" type="text_general" indexed="true" stored="true" />

    <field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/>

    <defaultSearchField>text</defaultSearchField>

    <copyField source="title" dest="text"/>

    最佳答案

    您需要对查询进行转义,因为破折号是 lucene 查询中的特殊字符。如果您想了解有关 lucene 查询语法的更多信息,请查看您应该转义 herehere 的其他字符。

    您的查询将如下所示:solr?q=Healing \- Live
    我不知道您正在使用哪种语言编写代码,但是如果您使用的是 Java,solrj 会提供 ClientUtils#escapeQueryChars 方法。

    关于solr - 特殊字符(-&+ 等)在 SOLR 查询中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12620386/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com