2013-12-10 5 views
2

У меня возникают проблемы с правильной работой индексов эластичного поиска с сервером 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() 

, но, честно говоря, я понятия не имею, как это работает. Может ли кто-нибудь помочь указать мне в правильном направлении? Я совершенно не знаком с определениями упругого поиска и титана.

Спасибо,

Адам

ответ

Смежные вопросы