The SpellCheckComponent in v1.4 does not use "fq". All it does is take the keywords out of the "q" (or spellcheck.q) parameter and check them against the entire dictionary. If any keyword is not in the dictionary, it gives you a list of alternatives. The collate function then takes the query and substitutes the top alternative for each keyword with suggestions. There is no filtering. It doesn't even assure you the suggestions or the collation will be any better than the original query. If you were using "fq" to filter out secret information, spell checking might reveal the secrets to your user anyway.
In 3.x, there is an additional feature that will check the collation against your index, including the "fq" parameters you sent. This will assure you that the Collation is going to return some hits if you re-query for it. This is probably closer to what you want. This does not affect the individual word suggestions, however, as it only works for the collation query. See http://wiki.apache.org/solr/SpellCheckComponent#spellcheck.collate for more information. This added 3.x functionality is also available in 1.4.1 as a patch. See https://issues.apache.org/jira/browse/SOLR-2010 James Dyer E-Commerce Systems Ingram Content Group (615) 213-4311 -----Original Message----- From: taimurAQ [mailto:taimur_qure...@hotmail.com] Sent: Thursday, December 30, 2010 12:20 AM To: solr-user@lucene.apache.org Subject: Issue using filter query with spellCheck component Hi, I am trying to use a filter query along with the spellcheck component but the resultant rows are completely ignoring the filter query parameter. I am using solrJ API to communicate with solr1.4. Here is a code snippet of how i am passing the query parameters: //start code snippet paramsForSpellCheck.set("q", "*:*"); paramsForSpellCheck.set("spellcheck.q", query); paramsForSpellCheck.set("rows", "0"); paramsForSpellCheck.set("indent", "on"); paramsForSpellCheck.set("spellcheck", "on"); paramsForSpellCheck.set("spellcheck.build", "true"); paramsForSpellCheck.set("spellcheck.extendedResults", "true"); paramsForSpellCheck.set("spellcheck.dictionary", "a_spell"); paramsForSpellCheck.set("spellcheck.collate", "true"); paramsForSpellCheck.set("spellcheck.count", "3"); paramsForSpellCheck.set("spellcheck.onlyMorePopular", "false"); paramsForSpellCheck.set("spellcheck.reload", "true"); paramsForSpellCheck.set("qt", "standard"); paramsForSpellCheck.set("fq", "catalog_id:" + catalogs); //end code snippet The issue that i am facing now is that the "fq" query parameter is not having any affect on the spellcheck query. Are there any known issues while using filter query with the spellcheck component? If not, what am i doing wrong? Thanks in advance. Regards, Taimur -- View this message in context: http://lucene.472066.n3.nabble.com/Issue-using-filter-query-with-spellCheck-component-tp2166322p2166322.html Sent from the Solr - User mailing list archive at Nabble.com.