elasticsearch - 带有 Elasticsearch 索引的 JanusGraph 不起作用
问题描述
我在 JanusGraph 中添加了混合索引,以支持使用 Elasticsearch 进行全文搜索。
我有混合索引,如:
myindex = mgmt.buildIndex("myesindex", Vertex.class)
.addKey("name", Mapping.TEXTSTRING.asParameter())
.addKey("sabindex", Mapping.TEXTSTRING.asParameter())
.buildMixedIndex("search");
我能够将数据加载到 Elasticsearch 引擎中。我也能够成功执行查询。
我面临的问题是当我点击查询时:
g.V().has('code','abc').valueMap()
==>{str=[some text], code=[abc], sab=[sab], sabindex=[sabindex], name=[[some tex]]}
我成功获得了结果,但是当我尝试使用名称和代码进行搜索时:
g.V().has('name', textContains('some text')).has('code','abc').valueMap()
代码字段也被索引(复合)
那时我没有得到任何结果。尽管数据存在于图形和 Elasticsearch 中。
另一种情况是具有不同名称和代码的相同查询成功运行。我也多次重建图表,但没有得到积极的结果。
解决方案
第一个查询显示值为name=[[some tex]]
。它缺少最后一个t
in text
,所以这就解释了为什么查询不匹配 on some text
。
如果您改为这样做textContains('some tex')
,您将获得与第一个查询相同的结果。使用该profile()
步骤将表明已使用该步骤myindex
。
请参阅重新创建方案的要点。
推荐阅读
- java - 如何根据配置动态创建多个jms消息驱动的通道适配器
- javascript - JS地图/过滤器在self上设置属性
- html - 在不移动其余元素的情况下向元素添加填充
- python - 如何匹配具有两个不同值的单个字段并在mongoDB聚合python中计算匹配的文档?
- canvas - 手绘卸妆工具
- html - 根据 json 数据的值对 html 数据中的行进行分组。并在点击每个显示详细信息的值时展开行
- aspnetboilerplate - 在 ABP Angular 中创建新租户时已使用角色名称 Admin
- r - R 轴图上的实际数据
- amazon-s3 - 如何在不使用签名 URL 的情况下安全地提供 S3 文件?
- python - 如何在 Flask 中使用 Ajax 在网页上显示图像?