【问题标题】:Solr Spell Check result based filter query基于 Solr 拼写检查结果的过滤器查询
【发布时间】:2012-02-18 17:29:24
【问题描述】:

我根据http://wiki.apache.org/solr/SpellCheckComponent 的文档实现了 Solr SpellCheck 组件,效果很好。但我正在尝试根据其他过滤器过滤拼写检查结果。考虑以下架构

product_name
product_text
product_category
product_spell -> copy string from product_name and product_text . And tokenized using white space analyzer

对于上述架构,我正在尝试根据提供的类别过滤拼写检查结果。我尝试像 http://127.0.0.1:8080/solr/colr1/myspellcheck/?q=product_category:160%20appl&spellcheck=true&spellcheck.extendedResults=true&spellcheck.collate=true 这样查询。 拼写检查结果不考虑 product_category:160

是因为字典是为所有类别构建的吗?如果是这样,为每个类别创建字典是个好主意吗?

拼写检查组件中不能有另一个过滤条件吗?

我正在使用 solr 3.5

【问题讨论】:

    标签: solr spell-checking


    【解决方案1】:

    我之前从SOLR-2010 问题中了解到,使用排序规则应该可以通过fq 参数进行过滤,但事实并非如此,我想我误解了。

    事实上,SpellCheckComponent 很可能有一个单独的索引,DirectoSolrSpellChecker 实现除外。这意味着您选择的字段在不同的索引中建立索引,该索引仅包含有关您选择进行拼写更正的特定字段的信息。

    如果您好奇,您还可以使用luke 看看这个附加索引的样子,因为它当然是一个 lucene 索引。不幸的是,使用其他字段进行过滤不是一种选择,仅仅是因为那里只有一个字段,即您用来进行拼写更正的字段。

    【讨论】:

    • 我在 solr-user 邮件列表上写信确认,但我还没有收到回复。无论如何,我看了一下代码,fq 参数甚至没有被读取,我用卢克看了一下索引:它没有包含足够的信息来制作过滤器。
    • 是的,根据索引,我们的发现是正确的。如果您收到来自 solr-user 邮件列表的任何回复,请告诉我
    • 这方面有更新吗?我也有同样的要求
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多