由于与DSE Graph和DSE Search的集成,没有特殊的Gremlin语法来实现这一点。要在DSE图表中完成此操作,您需要更改顶点标签的SOLR核心以将所需的过滤器添加到分析仪链中。像下面的内容可以使用:
ALTER SEARCH INDEX SCHEMA ON graph_name.vertex_label_p
ADD types.fieldType [ @name='phonetic' , @class='org.apache.solr.schema.TextField' ]
WITH
$${
"analyzer": [
{
"filter": [
{ "class": "solr.LowerCaseFilterFactory" },
{
"class": "solr.BeiderMorseFilterFactory",
"nameType": "GENERIC",
"ruleType": "APPROX",
"concat": "true",
"languageSet": "auto"
}
],
"tokenizer": { "class": "solr.StandardTokenizerFactory" }
}
]
}$$;
...然后让这些更改生效...
RELOAD SEARCH INDEX ON graph_name.vertex_label_p;
我们有其他用户使用BMPM与DSE搜索,但我不意识到任何人使用它与Graph到目前为止。
随着任何SOLR扩展添加到分析仪,您可能会看到一些硬件利用率的增加,特别是CPU。
非常感谢@jlacefie的答案。考虑到我在Solr的天真,这似乎并不是直截了当的,我会在接下来的几周尝试它,一旦我感觉舒服的摆弄内部。一个简单的问题是,在这样做之后,索引是否会自动拾取?或者我应该在发起我的gremlin查询之前单独查询solr? – Phani
如果您使用属性的has语句,则应使用索引。不应该有需要直接执行SOLR查询。 – jlacefie
我已将前两行更改为'ALTER SEARCH INDEX SCHEMA ON MyGraph.Person_p_search ADD types.fieldType [@ name ='callingName',@ class ='org.apache.solr.schema.TextField']'但它不编译。我找不到要在哪个键空间上运行此CQL命令!我已经尝试了DSE Studio中的MyGraph Notebook中的所有密钥空间。但没有运气。我使用'schema.vertexLabel('Person')。index('search')。search()。by('callingName')。asText()。add()'创建了我的搜索索引。 – Phani