[英]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.