【发布时间】:2019-09-25 17:51:21
【问题描述】:
我目前正在尝试使用链接here 进行通配符搜索并相应地编辑了我的架构文件,我还阅读了以下thread 并尝试对SOLR 进行必要的更改并使用token(hel*o) 进行查询但未能完成所需的搜索结果。因此,我想问一下我的通配符搜索方法是否不正确?我注意到可以使用tokenRegex(...) 搜索正则表达式,而无需更改架构。
===更新===
DSE Version : 6.7.2
Execution code : g.V().hasLabel("person_node").has("name", "Jo*")
Schema Used
----------------
<fieldType class="org.apache.solr.schema.TextField" name="TextWildcard">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.ReversedWildcardFilterFactory" withOriginal="true" maxPosAsterisk="3" maxPosQuestion="2" maxFractionAsterisk="0.33"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
我想实现一个普通的通配符查询,其中 * 表示可以有很多非空格字符匹配,例如 Hel*o 将能够匹配 Hello、Heleawo 或 Helzzzzo。
此外,它还可以与 ?它只匹配一个非空格字符,例如 Hel?o 将匹配 Helzo 而不是 Helzzzo。
【问题讨论】:
-
使用什么 DSE 版本,以及如何执行查询。您创建的架构是什么,最重要的是 - 您想要实现什么 - 类似于 SQL 的“LIKE”操作?
-
@AlexOtt 我已经更新了帖子,希望它能回答您的要求。
标签: solr datastax datastax-enterprise datastax-enterprise-graph