Solr Spell检查基于结果的过滤查询

时间:2012-01-25 14:25:55

标签: solr spell-checking

我根据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

1 个答案:

答案 0 :(得分:6)

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

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

如果你很好奇,你也可以看看使用luke的附加索引是什么样的,因为它当然是一个lucene索引。不幸的是,使用其他字段进行过滤不是一种选择,只是因为那里只有一个字段,用于进行拼写更正的字段。