2

我正在使用嵌入的 Neo4j 作为数据库。我每天必须存储数千篇文章,并且我需要提供搜索功能,我应该返回内容与用户输入的关键字匹配的文章。我对每篇文章的内容进行了索引,并在索引上查询如下

val articles = article_content_index.query("article_content", search string)

这工作正常。但是,当搜索字符串包含“the”、“a”等常用词时,会花费大量时间,这些词将出现在每篇文章中。

我该如何解决这个问题?

4

2 回答 2

2

应该是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

于 2013-08-06T12:12:37.347 回答
1

您可以配置article_content_index为全文索引,请参阅http://docs.neo4j.org/chunked/stable/indexing-create-advanced.html。要切换到使用全文索引,您首先必须删除索引,并且第一次使用IndexManager.forNodes(String, Map)需要在创建时正确配置索引。

于 2013-08-06T07:50:01.067 回答