我正在使用嵌入的 Neo4j 作为数据库。我每天必须存储数千篇文章,并且我需要提供搜索功能,我应该返回内容与用户输入的关键字匹配的文章。我对每篇文章的内容进行了索引,并在索引上查询如下
val articles = article_content_index.query("article_content", search string)
这工作正常。但是,当搜索字符串包含“the”、“a”等常用词时,会花费大量时间,这些词将出现在每篇文章中。
我该如何解决这个问题?
我正在使用嵌入的 Neo4j 作为数据库。我每天必须存储数千篇文章,并且我需要提供搜索功能,我应该返回内容与用户输入的关键字匹配的文章。我对每篇文章的内容进行了索引,并在索引上查询如下
val articles = article_content_index.query("article_content", search string)
这工作正常。但是,当搜索字符串包含“the”、“a”等常用词时,会花费大量时间,这些词将出现在每篇文章中。
我该如何解决这个问题?
应该是lucene的问题。
你可以配置你自己的分析器,它可以去掉那些频繁的(停用)词:
http://docs.neo4j.org/chunked/stable/indexing-create-advanced.html http://lucene.apache.org/core/3_6_2/api/core/org/apache/lucene/analysis/Analyzer.html http://lucene.apache.org/core/3_6_2/api/core/org/apache/lucene/analysis/standard/StandardAnalyzer.html
您可以配置article_content_index
为全文索引,请参阅http://docs.neo4j.org/chunked/stable/indexing-create-advanced.html。要切换到使用全文索引,您首先必须删除索引,并且第一次使用IndexManager.forNodes(String, Map)
需要在创建时正确配置索引。