JanusGraph с индексом Elasticsearch не работает - PullRequest
0 голосов
/ 17 октября 2018

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

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

1 Ответ

0 голосов
/ 18 октября 2018

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

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

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

...