这里有类似的问题,但没有答案。
我需要实现一个功能,用户可以从我的Node.Js应用程序中搜索我的Neo4J 2.0数据库中的两种类型的节点(标记为:Hashtags和:Statements)。
这意味着用户在搜索字段中输入他们需要的内容,单击搜索并获取结果。更好的方案是它更具响应性并且可以即时发现可能的匹配。
你会如何实现?
我有一些想法,但不确定要去哪一个:
每次用户进行搜索时,都会进行这种Cypher查询(对于数据库查询效率不高,我猜,并且不适用于响应式结果建议):
MATCH(h:Hashtag {name:“user_query”}),(s:Hashtag {name:“user_query”})RETURN h,s;
安装类似Elastic Search的内容并让它处理搜索(这是来自Linkurio.us的人已经完成的事情)
在第一个选项中,那些标记节点的.name属性当然是索引的。
第二种选择似乎更强大,但我真的希望避免安装额外的软件并具有这种依赖性。
也许您知道更好的解决方案?
谢谢!
答案 0 :(得分:2)
我不明白为什么第一个选项不会响应?
默认情况下,所有Neo4j索引都使用Lucene,与弹性搜索相同? 使用索引(或唯一约束),查找应该是即时的。
你真的测试了性能吗? (确保使用实际值的参数)