gpt4 book ai didi

solr - Coldfusion Solr 搜索 - 相当于 SQL 中的 LIKE %string%

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

如何使用与以下 SQL 搜索查询相同的逻辑进行 SOLR 搜索?

SELECT * FROM user where email LIKE '%ben%'" 

我尝试了以下方法,

<cfscript>
mysearch = new com.adobe.coldfusion.search();
searchResult = mysearch.search(collection="mycollection", criteria='ben*');
</cfscript>
  1. criteria='ben*' 匹配“raw_ben@yahoo.com”和“ben@yahoo.com”但没有返回字符串“roben roben”。

  2. criteria='ben~' 匹配“raw_ben@yahoo.com”和“ben@yahoo.com”但没有返回字符串“roben roben”。

所有模糊搜索、狂野搜索尝试都是如此。

最佳答案

您需要更改字段的 fieldType,该字段可以使用 solr.EdgeNGramFilterFactory 生成 token 借助它,您可以生成 token ,例如abhijit 会生成 abh、abhi、abhij、abhiji、abhijit,因此会匹配您的查询的所有这些组合。

使用第二个 EdgeNGramFilterFactory 它将生成 token jit、ijit、hijit、bhijit、abhijit、iji、hiji、bhiji 等等...

尝试使用以下字段类型

<fieldType name="text_reference" class="solr.TextField" sortMissingLast="true" omitNorms="true" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="50" side="front"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="50" side="back"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>

关于solr - Coldfusion Solr 搜索 - 相当于 SQL 中的 LIKE %string%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31532660/

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