我正在使用PHP,SQL和JQuery为我的网站编写搜索引擎。我有使用数据库中的现有数据添加自动完成功能的经验(即搜索文章标题)。但是,如果我想使用用户输入的最常见的搜索查询,类似于Google的搜索查询,而没有那么多用户为数据的创建做出贡献(最常见的查询)呢?是否有某种开源SQL表中包含自动完成数据或类似内容?
答案 0 :(得分:1)
<queryID, query, count>
,其中每次由其他用户[种类排序]提供相同查询时,计数递增。 N-Gram索引(这样你也可以自动完成像“曼联”这样的东西,当人只是键入“United”,即不只是用起始字符串)查询时,只需在使用count排序后返回前N个。答案 1 :(得分:0)
您可以使用Lucene搜索引擎实现此功能。请参阅此link
或者你也可以看看Lucene Solr Autocomplete ...
答案 2 :(得分:0)
谷歌拥有(并且拥有)数千个根据(日,时间,地理位置,语言......)排列的条目,并且随着用户输入单词系统检查表格,用户条目会增加“主要使用的词语属于该位置+日+时间”+(如果没有答案)则为“一般词语”。因此,您应该对用户输入的每个单词进行分类,或者为您创建数据库的一般单词关系表,其中将引用最合适的搜索答案。
答案 3 :(得分:0)
昨天我偶然发现了一些回答我问题的事情。 Google会从此XML文件中提取自动填充建议,因此,如果您几乎没有用户使用关键字创建自己的数据库,那么使用它是明智的:
http://google.com/complete/search?q=[keyword]&output=toolbar
只需用某个单词替换[keyword]即可给出有关该单词的建议,然后这些单词只是解析返回的xml并根据您的需要格式化输出。