gpt4 book ai didi

solr - 在solr查询中使用特殊字符进行通配符搜索

转载 作者:行者123 更新时间:2023-12-04 02:10:27 24 4
gpt4 key购买 nike

如果我搜索 q=searchtext:*xxx*,效果很好,但如果关键字有“-”(q=searchtext:*xxx-xx*),那么它不会给出结果。

复制 searchtext 字段中的所有字段,并在其上添加 text_general 字段类型。

架构:

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory" />
<filter class="solr.ASCIIFoldingFilterFactory" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<!-- in this example, we will only use synonyms at query time
<filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
-->
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.ReversedWildcardFilterFactory" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory" />
<filter class="solr.ASCIIFoldingFilterFactory" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" />
<filter class="solr.PorterStemFilterFactory" />
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
</fieldType>

谷歌搜索了很多小时,但找不到解决方案。

如果有人能提供帮助,我们将不胜感激。

编辑:将关键字分词器更改为标准

最佳答案

你说通配符,虽然你的例子似乎不包括通配符。假设您正在寻找“通配符”搜索(通配符位于提供的任何内容的末尾)可能会发现前缀查询解析器很有帮助。它是这样工作的:

q="{!prefix f=searchtext}xxx-xx"

您可以阅读更多相关信息 here .它不进行分析或值转换,因此它通常有助于处理包含空格或其他可能混淆标准查询解析器的值的情况。

关于solr - 在solr查询中使用特殊字符进行通配符搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39080348/

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