2011-10-03 33 views
0

是否可以在同一個SOLR(3.1+)請求中執行多個空間查詢?SOLR(3.1+) - 具有相同請求中的OR的多個空間查詢

我們目前需要允許用戶通過前端搜索表單搜索具有他們選擇的位置的庫存。但我們還希望在幕後添加另一個空間搜索,以便包含更多的廣告資源。由此產生的搜索將導致一個維恩圖類型的搜索。

編輯2011年4月10日

實施例構建體:Q = *:* & FQ = &元數=位置& {geofilt!}(客戶端Id: 「客戶端1」 & PT = 40.68063802521456,-74.00390625 & d = 80.4672) %20OR%20_query _ :(客戶端Id: 「客戶端2」 & PT = 36.1146460,-115.1728160 & d = 80.4672)

上述結構不工作,但希望證明什麼,我試圖完成。

+0

你最終做了什麼?我面臨着類似的情況,我需要在多個位置進行地理空間搜索索引。 – kdawg

+0

老實說,我記得這麼久了。轉移到另一個項目,並從那以後一直沒有回來。 –

回答

0

看起來,你喜歡在一個請求中運行N個查詢,以便爲每個查詢獲得一個結果集?!

所以字段崩潰(http://wiki.apache.org/solr/FieldCollapsing)是你在找什麼。不幸的是,FieldCollapsing只能從3.3版本獲得。

根據您的需要,也許從不同分面搜索的計數結果也可能有用?

+0

感謝您的回覆,看來我的問題有點含糊。我更新了一個示例結構。然而,我要去看看fieldCollapsion。 –

0

如果你移動你的第二個位置查詢到額外的過濾器的查詢,如下圖所示:

q=*:*&fq={!geofilt}&sfield=Location&(ClientId:"client1"&pt=40.68063802521456,-74.00390625&d=80.4672)&fq={!geofilt}&sfield=Location&(ClientId:"client2"&pt=36.1146460,-115.1728160&d=80.4672)

威爾是提供您正在尋找的結果?它可能最終會受到限制,但認爲這值得嘗試。

你也可以試試:

q=*:*&fq={!geofilt}&sfield=Location&((ClientId:"client1"&pt=40.68063802521456,-74.00390625&d=80.4672)%20OR%20(ClientId:"client2"&pt=36.1146460,-115.1728160&d=80.4672))

+0

我會給他們一個鏡頭。感謝您的意見。 –

1

這是舊的,但它似乎並不像它曾經有一個完整的答案。我有同樣的問題,並發現這種語法的工作原理:

q =*:*& fq = (({ 
      !geofilt sfield = Location pt = 40.68063802521456, 
      -74.00390625 d = 80.4672 
     } 
      AND ClientId : "client1")OR({ 
      !geofilt sfield = Location pt = 36.1146460, 
      -115.1728160 d = 80.4672 
     } 
      AND ClientId : "client2")) 
相關問題