如何使用Lucene.NET构建自动完成/建议?
创建进入您的应用程序的所有搜索查询的数据库。 (查询日志)
创建具有类似领域
QueryText varchar(x)
Occurence int
表然后做一个搜索,其中查询文本与用户正在通过发生递减搜索和顺序启动。
where QueryText LIKE 'some text%' ORDER BY Occurence DESC
我很想看看为什么人们低估了这个,尽管我想我知道答案...(太慢了?) – 2012-11-27 07:58:54
我不确定我自己,但是这根本不会很慢,因为我们标记了发生了查询,所以而不是100行相同的文本,我们只有1行出现100次。如果需要,可以将它自己存储在SQL或Lucene中。我实际上使用它,它在找到常用搜索短语方面做得很好。 – 2014-04-01 14:24:57
很简单响应在这里,它会让你开始。
作为lucene.net contrib的一部分的SpellChecker项目将为您提供Google的“你的意思是?像功能一样,检查一下。
对于AutoComplete,您可以在文本查询的末尾附加*。所以JA *将返回的Java,千斤顶,简等。同样,* VA将返回的Java,熔岩等(虽然你必须明确地让领导通配符)
希望这有助于
你想它采取行动根据以前的查询,搜索索引的完整字典,或者对数据的某些字段进行查找/搜索? – 2010-02-17 15:52:46