我有一个非常简单的SQL表,我想导入到Solr中,但由于我想要搜索的功能,我无法确定最佳模式。
用户将开始在输入框中键入内容,在3个字符后,它会将请求发送到服务器并提取最相关的结果,返回前15个匹配的ID和名称。
表格ex)
id | name
----------------
1 | boating magazines
2 | boats weekly
3 | boaters collection
4 | shipping lane
5 | ships today
搜索和预期回报ex)
boa | [1, boating magazines], [2, boaters weekly], [3, boaters collection]
boat | [1, boating magazines], [2, boaters weekly], [3, boaters collection], [4, shipping lane], [5, ships today]
shi | [4, shipping lane], [5, ships today]
ship | [1, boating magazines], [2, boaters weekly], [3, boaters collection], [4, shipping lane], [5, ships today]
boating | [1, boating magazines], [2, boaters weekly], [3, boaters collection], [4, shipping lane], [5, ships today]
(显然那些将以xml的形式返回)
有关如何实现这一目标的任何信息将不胜感激。感谢。
答案 0 :(得分:2)
您可以使用facet.prefix,TermsComponent或NGrams来实现此目的。
其中一篇文章还展示了如何使用jQuery绑定它,或者你可以use ajax-solr。
顺便说一下,Solr的下一个版本中将包含一个特定的autosuggest component。
答案 1 :(得分:0)
你想知道什么?
如果您的问题是如何获取数据?最简单的方法是发布xml文件....
如何定义schema.xml?你不必,有字符串的预定义通配符字段,它们以_s结束,我认为。
如何形成查询?......就像myfield_string:"boa*"
显然是xml?为什么? json更小,同样适用于此目的!
你看过官方教程吗? http://lucene.apache.org/solr/tutorial.html
你想对单词或整个文件进行自动提示吗?
首先很容易。 solr甚至还有非常优化的处理程序。查看本教程:http://www.mattweber.org/2009/05/02/solr-autosuggest-with-termscomponent-and-jquery/
第二个变得更有趣。如果有人输入“船只集合”或类似的东西怎么办?我个人会建议在最后使用带有通配符的dismax处理程序进行自动提示。然后单词是逻辑OR结合,未完成的单词在开头匹配...