【问题标题】:Simple Solr schema problem for autocomplete用于自动完成的简单 Solr 模式问题
【发布时间】:2011-04-15 23:35:48
【问题描述】:

我有一个非常简单的 SQL 表,我想将它导入 Solr,但由于我想要搜索的功能,我无法确定最佳架构。

用户将开始在输入框中输入内容,并在 3 个字符后将请求发送到服务器并提取最相关的结果,返回前 15 个匹配的 id 和名称。

表例)

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 返回)

任何关于我将如何实现这一目标的信息将不胜感激。谢谢。

【问题讨论】:

    标签: search schema solr


    【解决方案1】:

    您可以使用facet.prefixTermsComponentNGrams 来实现此功能。

    其中一篇文章还展示了如何使用 jQuery 绑定它,或者您可以 use ajax-solr

    顺便说一句,特定的autosuggest component 将包含在 Solr 的下一个版本中。

    【讨论】:

    • 啊,太好了,在阅读了一些资料后,我认为 NGrams 是最流行的方法是否正确?
    • 非常感谢,使用了 NGrams 并使其正常工作。在一堆用例上都失败了,但我确信这与选择正确的过滤器有关。
    【解决方案2】:

    你到底想知道什么?

    如果您的问题是如何在那里获取您的数据?最简单的方法是发布 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 处理程序进行自动建议。然后单词在逻辑或连接中,未完成的单词在开头匹配...

    【讨论】:

    • 对不起,我的印象是 Solr 只返回 XML。是的,我在问如何为这种情况定义架构。
    猜你喜欢
    • 2013-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多