簡體   English   中英

Solr和Solrj中的IN等效查詢

[英]IN Equivalent Query In Solr and Solrj

我正在使用solr5.0.0。 我想知道solr或solrj中IN的等效查詢。

如果我需要查詢不同品牌的產品,可以使用IN子句。 如果我有戴爾,索尼,三星等品牌。 我需要使用Solr和Java Solrj查找具有這些品牌的產品。

現在我在Solrj中使用此代碼

qry.addFilterQuery("brand:dell OR brand:sony OR brand:samsung");

我知道我可以在這里使用OR,但是需要了解Solr中的IN。 和OR的表現。

正如您可以在Solr的Wiki中閱讀有關其查詢語法的內容一樣 ,Solr默認情況下使用Lucene Query解析器的超集。 正如您在閱讀兩個文檔時所看到的那樣,不存在類似IN的內容。 但是您可以比您提出的示例查詢短一些。

如果您的默認運算符為OR,則可以將其排除在查詢之外。 另外,您可以使用字段分組

qry.addFilterQuery("brand:(dell sony samsung)");

如果OR不是您的默認運算符或對此不確定,則可以對過濾器查詢使用Local Parameters,以便強制執行OR。 之后,您可以再次使用字段分組。

qry.addFilterQuery("{!q.op=OR}brand:(dell sony samsung)");

請記住,您需要在短語周圍加上"以使單詞保持在一起

qry.addFilterQuery("{!q.op=OR}brand:(dell sony samsung \"packard bell\")");

暫無
暫無

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

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