У меня возникают проблемы с правильной работой индексов эластичного поиска с сервером Titan. В настоящее время у меня есть локальная настройка Titan/Cassandra с использованием Titan Server 0.4.0 с включенным поддержкой поиска. У меня есть тестовый график «bg» со следующими свойствами:Создание индексированных типов Titan для elasticsearch
- Вершины имеют два свойства: «тип» и «значение».
- Кромки имеют ряд других свойств с именами типа «timestamp», «length» и т. Д.
Я бегу titan.sh с rexster-Кассандры es.xml конфигурации, и моя конфигурация выглядит следующим образом:
storage.backend = "cassandra"
storage.hostname = "127.0.0.1"
storage.index.search.backend = "elasticsearch"
storage.index.search.directory = "db/es"
storage.index.search.client-only= "false"
storage.index.search.local-mode = "true"
Эта конфигурация является такой же в Б.Г. конфигурации в Rexter а groovy, который загружает данные.
Когда я загружаю клиента Rexster и набираю g = rexster.getGraph("bg")
, я могу выполнить точный поиск с помощью g.V.has("type","ip_address")
и вернуть правильные вершины. Однако, когда я запускаю запрос:
g.V.has("type",CONTAINS,"ip_")
Я получаю ошибку:
Data type of key is not compatible with condition
Я думаю, что это что-то делать с «значение» типа не индексируется. То, что я хотел бы сделать, - сделать все атрибуты вершин и краев индексируемыми, чтобы я мог при необходимости использовать любую из функций согласования строк. Я уже пробовал сделать индексный ключ, используя команду
g.makeKey("type").dataType(String.class).indexed(Vertex.class).indexed("search",Vertex.class).make()
, но, честно говоря, я понятия не имею, как это работает. Может ли кто-нибудь помочь указать мне в правильном направлении? Я совершенно не знаком с определениями упругого поиска и титана.
Спасибо,
Адам