Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Solr Spell Check result based filter query

I implemented Solr SpellCheck Component based on the document from http://wiki.apache.org/solr/SpellCheckComponent , it works good. But i am trying to filter the spell check result based on some other filter. Consider the following schema

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

For the above schema, i am trying to filter the spell check result based on provided category. I tried querying like http://127.0.0.1:8080/solr/colr1/myspellcheck/?q=product_category:160%20appl&spellcheck=true&spellcheck.extendedResults=true&spellcheck.collate=true . Spellcheck results does not consider the product_category:160

Is it because the dictionary was build for all the categories? If so is it a good idea to create the dictionary for every category?

Is it not possible to have another filter condition in spellcheck component?

I am using solr 3.5

like image 375
Anto Binish Kaspar Avatar asked Jan 25 '12 14:01

Anto Binish Kaspar


1 Answers

I previously understood from the SOLR-2010 issue that filtering through the fq parameter should be possible using collation, but it isn't, I think I misunderstood.

In fact, the SpellCheckComponent has most likely a separate index, except for the DirectoSolrSpellChecker implementation. It means the field you select is indexed in a different index, which contains only the information about that specific field you chose to make spelling corrections.

If you're curious, you can also have a look how that additional index looks like using luke, since it's of course a lucene index. Unfortunately filtering using other fields isn't an option there, simply because there is only one field there, the one you use to make spelling corrections.

like image 101
javanna Avatar answered Sep 27 '22 17:09

javanna