2010-02-17 66 views

回答

-4

创建进入您的应用程序的所有搜索查询的数据库。 (查询日志)

创建具有类似领域

QueryText varchar(x) 
Occurence int 

表然后做一个搜索,其中查询文本与用户正在通过发生递减搜索和顺序启动。

where QueryText LIKE 'some text%' ORDER BY Occurence DESC 
+0

我很想看看为什么人们低估了这个,尽管我想我知道答案...(太慢了?) – 2012-11-27 07:58:54

+0

我不确定我自己,但是这根本不会很慢,因为我们标记了发生了查询,所以而不是100行相同的文本,我们只有1行出现100次。如果需要,可以将它自己存储在SQL或Lucene中。我实际上使用它,它在找到常用搜索短语方面做得很好。 – 2014-04-01 14:24:57

1

很简单响应在这里,它会让你开始。

作为lucene.net contrib的一部分的SpellChecker项目将为您提供Google的“你的意思是?像功能一样,检查一下。

对于AutoComplete,您可以在文本查询的末尾附加*。所以JA *将返回的Java,千斤顶,简等。同样,* VA将返回的Java,熔岩等(虽然你必须明确地让领导通配符)

希望这有助于