簡體   English   中英

SolrJ查詢

[英]SolrJ Query

大家好

我必須使用SolrJ查詢索引的多個值(就像IN(id1,id2,id3)sql查詢),換句話說,我想檢索哪些字段與一組值匹配的文檔。

由於solrj api粗略記錄,我希望有人可以幫助我

問候

你可以這樣做:

SolrQuery solrQuery = new SolrQuery().setQuery("myField:id1 OR myField:id2 OR myField:id3");
QueryResponse rsp = server.query(solrQuery);

要么:

SolrQuery solrQuery = new SolrQuery().setQuery("myField:(id1 OR id2 OR id3)");
QueryResponse rsp = server.query(solrQuery);

我已經嘗試過,在Solr 5這個似乎運行良好:

String mQueryString="term:business OR term:\"information security\"";
SolrQuery query = new SolrQuery();
query.setQuery(mQueryString);

美好的一天 ,

你可以通過2種方式做到這一點

1-使用OR作為值之間的分隔符,我們可以使用StringUtils使其更容易檢查下面

Set<String> pdfFamilies = new HashSet<String>();
String familyIdsString = StringUtils.join(pdfFamilies , 'OR');
solrQuery = new SolrQuery("FAM_ID: ( " + familyIdsString + " )");

2 - 使用SPACE作為值之間的分隔符,請在下面查看

Set<String> pdfFamilies = new HashSet<String>();
String familyIdsString = StringUtils.join(pdfFamilies , ' ');
solrQuery = new SolrQuery("FAM_ID: ( " + familyIdsString + " )");

在模式定義文件conf / schema.xml中,您可以指定默認運算符,確保它是OR:

<solrQueryParser defaultOperator="OR"/>

然后,您可以在查詢中按空格分隔單詞,這將導致單詞的OR:

solrQuery.setQuery("myField:(id1 id2 id3)")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM