2013-02-21 56 views
1

我正在嘗試在SOLR 3.5.0中設置升級處理程序,我需要在dismax格式中根據匹配類型在同一個字段上定義不同的提升值的等效查詢(完全匹配獲取200而通配符匹配得到100)。Solr DisMax查詢等效

Q =名稱:(FOO *^100.0富^ 200.0)

回答

0

這是解決這個問題的方法之一。

保留一個文本字段只有WhiteSpaceTokenizer(也許LowerCaseFilter取決於您的區分大小寫需求)。使用此字段進行完全匹配。我們稱這個字段爲name_ws

而不是使用上name_ws外卡的查詢,在您的分析儀鏈使用的文字型copy fieldEdgeNGramTokenizer,將輸出令牌,如:

food -> f, fo, foo, food

讓我們把這個領域name_edge

然後你就可以發出此dismax查詢:(添加debugQuery=on覈實,如果打分的工作,你所希望的方式)

q=foo&defType=dismax&qf=name_ws^200+name_edge^100