Я добавил смешанный индекс в 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.
И другой сценарий - тот же запрос с другим именем и кодом работает успешно. Я также несколько раз перестраиваю график, но не получаю положительных результатов.