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()

Perform search 与:

g.V().hasLabel("person_node").has("name", regex("Jo*"))