2

I am having problems getting the elastic search indexes to work correctly with Titan Server. I currently have a local Titan/Cassandra setup using Titan Server 0.4.0 with elastic search enabled. I have a test graph 'bg' with the following properties:

  • Vertices have two properties, "type" and "value".
  • Edges have a number of other properties with names like "timestamp", "length" and so on.

I am running titan.sh with the rexster-cassandra-es.xml config, and my configuration looks like this:

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"

This configuration is the same in the bg config in Rexter and the groovy script that loads the data.

When I load up Rexster client and type in g = rexster.getGraph("bg"), I can perform an exact search using g.V.has("type","ip_address") and get the correct vertices back. However when I run the query:

g.V.has("type",CONTAINS,"ip_")

I get the error:

Data type of key is not compatible with condition

I think this is something to do with the type "value" not being indexed. What I would like to do is make all vertex and edge attributes indexable so that I can use any of the string matching functions on them as necessary. I have already tried making an indexed key using the command

g.makeKey("type").dataType(String.class).indexed(Vertex.class).indexed("search",Vertex.class).make()

but to be honest I have no idea how this works. Can anyone help point me in the right direction with this? I am completely unfamiliar with elastic search and Titan type definitions.

Thanks,

Adam

4

1 回答 1

-1

Wiki 页面Indexing Backend Overview应该回答您问题的每一个细节。

干杯,丹尼尔

于 2013-12-10T21:24:53.260 回答