具有Elasticsearch索引的JanusGraph无法正常工作

时间:2018-10-17 13:47:19

标签: elasticsearch gremlin janusgraph

我在JanusGraph中添加了混合索引以支持Elasticsearch的全文搜索。

我的混合索引如下:

Task<IList<User>>

我能够将数据加载到Elasticsearch引擎中。 另外,我也能够成功执行查询。

我面临的问题是当我点击查询时:

myindex = mgmt.buildIndex("myesindex", Vertex.class)
    .addKey("name", Mapping.TEXTSTRING.asParameter())
    .addKey("sabindex", Mapping.TEXTSTRING.asParameter())
    .buildMixedIndex("search");

我成功获取了结果,但是当我尝试使用名称和代码搜索时

g.V().has('code','abc').valueMap()
==>{str=[some text], code=[abc], sab=[sab], sabindex=[sabindex], name=[[some tex]]}

代码字段也被索引(复合)

那时我没有任何结果。虽然数据存在于图形和Elasticsearch中。

另一种情况是具有不同名称和代码的同一查询可以成功工作。我还多次重建了图形,但没有得到积极的结果。

1 个答案:

答案 0 :(得分:3)

第一个查询显示值为name=[[some tex]]。它缺少t中最后一个text,因此可以解释为什么查询在some text上不匹配。

如果您改为执行textContains('some tex'),则会得到与第一个查询相同的结果。使用profile()步骤将显示myindex被利用了。

请参阅此gist重新创建方案。