2012-02-23 42 views
1

在我的數據中,我有兩個字段,類別和價格。我希望能夠查詢範圍,價格:[500至1000]和類別:電子設備,但仍然返回結果低於500和超過1000,只是根據與範圍的差異得出的相關性得分較低。Solr - 如何在價格上獲得模糊結果?

即我想顯示:

產品1 $ 500強
產品2 $ 550
產品3 $ 650
product4的$ 900
產品5 $ 450
產品6 $ 475
產品7 $ 1200

可有人請棚關於如何實現這一點的一些信息?

感謝, 德魯

+0

您可以在架構中添加錯誤結果和價格字段定義的示例嗎? – Fuxi 2012-02-23 19:05:04

+0

這裏是價格字段:現在我可以查詢我想要的確切結果,但我不是確定如何查詢模糊結果並根據相關性對它們進行評分。例如,我可以撤回500-1000的結果,但我也希望超出該範圍的值,只是得到較低的相關性。 – dhysong 2012-02-23 19:12:16

+0

您應該嘗試提高範圍值以使其顯示在其他範圍值之前。 – Jayendra 2012-02-23 19:35:50

回答

4

你能嘗試使用edismax查詢分析器和boost query提高比別人更高的價格區間。

bq=price:[500 TO 1000]^10 

這會提高所有價格在高於另一個的範圍內,以使它們處於頂部。

+0

我試過在這個查詢中:http://localhost:8080/solr/select?q = *:*&deftype = dismax&fl = price,score&bq = price:[500%20TO%201000]^10&numrows = 50,但返回以下結果:475,395,420,493 ,480,525,490 – dhysong 2012-02-23 20:04:57

+0

您使用的是edismax查詢解析器嗎? defType = edismax? – Jayendra 2012-02-23 20:05:36

+0

我試過dismax和edismax,結果都一樣。我正在運行solr 3.5。 – dhysong 2012-02-23 20:07:29