我是Neo4j和Solr/Lucene的新手.我已经读过我们可以在Neo4j中使用lucene查询这是如何工作的?在Neo4j中使用lucene查询有什么用?
而且我还需要一个建议.我需要编写一个应用程序来搜索和分析数据.which might help me Neo4j Or Solr?
Fro*_*its 12
Neo4J使用lucene作为其遗留索引的一部分.现在,Neo4J支持几种索引,比如在节点上创建标签,以及在节点属性上创建索引.
但在neo4j支持这些新功能之前,它主要(并且仍然)使用Lucene进行索引.大多数开发人员会在特定节点属性上创建lucene索引,以使他们能够使用lucene的查询语法在cypher查询中查找节点.
例如,如果您根据文档创建了索引,则可以在索引中搜索特定值,如下所示:
IndexHits<Node> hits = actors.get( "name", "Keanu Reeves" );
Node reeves = hits.getSingle();
Run Code Online (Sandbox Code Playgroud)
它实际上是在做那个发现的场景.
在密码中,它可能看起来像这样:
start n=node:node_auto_index('name:M* OR name:N*')
return n;
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您正在为具有以"M"或"N"开头的name属性的所有节点搜索特定索引.根据lucene查询语法,单引号表达式内部只有一个查询.
好吧,这就是Neo4J如何使用lucene.在最近的版本中,我只使用这些"遗留索引"进行全文索引,这是lucene的优势所在.如果我只想要快速等式检查(其中name ="Neo"),那么我使用常规的neo4j模式索引.
至于Solr,我还没有看到它与neo4j一起使用 - 也许有人会跳进去提供一个反例,但通常我认为Solr运行在一个大的lucene索引之上,并且在neo4j的情况下,它在那里的中间,我不确定运行Solr是否合适.
至于你需要编写一个搜索和分析数据的应用程序,我不能给你一个建议 - Neo4J或Solr可能会有所帮助,这取决于你的应用程序和你想做什么.在一般情况下,当您需要表达和搜索图表时,请使用neo4j.当您需要组织和搜索大量文本文档时,请使用Solr.
| 归档时间: |
|
| 查看次数: |
6738 次 |
| 最近记录: |