我正在使用Solr建議器組件,並且想知道是否可以通過fq
參數篩選結果。我有這樣一個查詢:建議者Solr過濾器查詢
http://localhost:8982/solr/core1/suggest?q=shirts&fq=category_id%3A321&wt=json&indent=true&spellcheck=true&spellcheck.build=true
在這裏,我嘗試獲得q=shirts
的一些建議。我想通過fq=category_id:321
過濾這個,這樣我就不會從其他類別獲得建議。因爲category_id:321
類別沒有任何與shirts
相關的產品,所以不應該回復任何建議。但它確實如此。當試圖搜索該建議時,它找不到任何內容,因爲使用參數fq=...
過濾了「原始」搜索。
我在這裏找到了collate
這裏http://wiki.apache.org/solr/SpellCheckComponent#spellcheck.collate。它會整理我的結果,但也會返回shirts
的建議。
所以我的問題是,建議者(或基本上是SpellCheckerComponent)意識到fq參數,以及如何使用此參數來過濾建議(或在以後階段,拼寫更正)。
EDIT
我發現,即「正常」的拼寫檢查組件(例如用類solr.IndexBasedSpellChecker
例如),確實採取fq
參數考慮在內。我可以設置
<str name="spellcheck.collate">true</str>
<str name="spellcheck.collateExtendedResults">false</str>
和由某一類別ID,其中該關鍵字shirt
不存在過濾時,不返回shitr
的建議。
我想知道,爲什麼這不適用於建議組件。有任何想法嗎?
感謝您的回答。 'extendedResults'值是否考慮了'fq'值?比方說,我按類別1過濾我的查詢,建議者返回一些值,但是'extendedResults'字段表示,不存在您當前查詢的任何值嗎? – 23tux