DSE:通配符搜索
DSE: Wildcard searches
我目前正在尝试使用 link here, I have also read up the following 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>
我想实现一个普通的通配符查询,其中 * 表示可以有很多非 space 字符的匹配项,例如 Hel*o 将能够匹配 Hello、Heleawo 或 Helzzzzo。
此外,它也适用于 ?它只匹配一个非 space 字符,例如 Hel?o 将匹配 Helzo 而不是 Helzzzo。
啊,好的 - 你没有使用正确的图表操作。要执行您想要的操作,您需要执行以下操作:
Create search index 在给定的 属性 上:
schema.vertexLabel('person_node').index('searchname').search().by('name').asString().add()
g.V().hasLabel("person_node").has("name", regex("Jo*"))
我目前正在尝试使用 link here, I have also read up the following 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>
我想实现一个普通的通配符查询,其中 * 表示可以有很多非 space 字符的匹配项,例如 Hel*o 将能够匹配 Hello、Heleawo 或 Helzzzzo。
此外,它也适用于 ?它只匹配一个非 space 字符,例如 Hel?o 将匹配 Helzo 而不是 Helzzzo。
啊,好的 - 你没有使用正确的图表操作。要执行您想要的操作,您需要执行以下操作:
Create search index 在给定的 属性 上:
schema.vertexLabel('person_node').index('searchname').search().by('name').asString().add()
g.V().hasLabel("person_node").has("name", regex("Jo*"))