2011-11-17 71 views
0

我在Solr的DB表示該項目有關國家的國家字段中搜索字符串。國家名單是PIPE分離
例如:
<arr name="country"> <str>France | United Kingdom | Norway | UAE </str> </arr> 和像
<arr name="country"> <str>Australia | Belgium | Argentina </str> </arr>
現在的另一個項目,我需要尋找有關英國OR比利時 所有項目我想這Solr的:如何在面

 
http://127.0.0.1:8888/solr/MyDb/select/?q=*:*&version=2.2&start=0&rows=10&indent=on&facet=true&fq=country:United+Kingdom+OR+Belgium 

但這不起作用!你能指導我如何做這個搜索?
感謝您的幫助

回答

1

什麼是分析在國家領域@索引和查詢時間?

建議 -

指數的國家和多值,而不是由|分隔。 使用的字段類型以最小的分析或字段類型字符串過濾

<field name="country" type="string" indexed="true" stored="true" multiValued="true"/> 

篩選查詢應

fq=country:Norway 
fq=country:("United Kingdom" OR Belgium) 
+0

爲什麼我們的情況下,不同的結果,我們沒有把括號?! – Alaa

+0

如果我們不放括號,查詢將基本匹配比利時的默認字段。所以查詢將被轉換爲fq =國家:「英國」或文本:比利時 – Jayendra

1

工作,爲這個特殊的數據,多值字段是正確的答案,但我想說一點約pipe分隔的字段。我有這些使用了不少,但總是扁平化的對象的層次結構,例如代表的貨幣金額爲GBP | 75000或維度英尺| 14。

在一種情況下我用它來表示具有7個不同的標籤的各種組合的XML文檔的一部分,所以我用單個字段具有7項的管分隔的列表。例如:

Promotion|||December Days||773635554238 
|quarterpage|||||883736656534 

的一件事關於所有這些例子中是該項目列表內的位置是固定的,即貨幣代碼是總是首先或營銷ID總是被持續。這意味着,您可以可靠地搜索喜歡的事情GBP|*找到與英鎊匯率或*|quarterpage|*所有文件找到與季頁廣告的所有文件。最後一個例子的

一個缺點是,你有,你是在這導致延長還款期限,因此較高的RAM使用的市場營銷領域的7個項目的所有不同用途採用全球唯一的方面要小心。如果有時cat意味着類別有時cat意味着介紹,它是行不通的。