JanusGraph с индексом Elasticsearch не работает

Я добавил смешанный индекс в 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.

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


person Shubham Parikh    schedule 17.10.2018    source источник


Ответы (1)


Первый запрос показывает значение name=[[some tex]]. В text отсутствует последний t, поэтому это объясняет, почему запрос не соответствует some text.

Если вы вместо этого выполните textContains('some tex'), вы получите тот же результат, что и первый запрос. Использование шага profile() покажет, что myindex был использован.

См. суть сценария воссоздания.

person Jason Plurad    schedule 18.10.2018
comment
Спасибо за ответ. Я пробовал использовать метод textContains, он работает хорошо, но производительность запроса медленная по сравнению с eq - person Shubham Parikh; 25.10.2018
comment
Вы проверили, что индекс используется? Если вам нужна более конкретная помощь по отладке, группа janusgraph-users может быть лучшим форумом для ваших вопросов. github.com/JanusGraph/janusgraph/blob/master/ - person Jason Plurad; 25.10.2018
comment
Да, я проверил логи эластичного двигателя. Запрос там находится. - person Shubham Parikh; 30.10.2018