簡體   English   中英

SolrNet OR查詢

[英]SolrNet OR query

我正在嘗試查詢ParentId =線程或DataId =線程的記錄。 查詢使我超時。 以下查詢有問題嗎?

var Test = solr.Query(new SolrQueryByField("ParentId", Thread) ||
                     (new SolrQueryByField("DataId", Thread)));

我不是Solr.Net的專家,但我已將其用於一個項目。 我只能建議您嘗試幾件事。

首先轉到您的SOLR管理員,然后嘗試執行查詢:

(ParentId:"Thread") OR (DataId:"Thread")

如果返回任何結果且未超時,則可以在Solr.Net中使用相同的字符串,例如:

string strQuery = "(ParentId:\"Thread\") OR (DataId:\"Thread\")"; 
// or use * for contains instead of double quotes
var query = new SolrQuery(strQuery);
SortOrder sortOrder = new SortOrder("ParentId");
var solrQueryResult = solr.Query(query, new QueryOptions
    {
        Rows = 100, //Max Rows returned
        Start = 0,
        OrderBy = new[] { sortOrder }, //If you want the ordered result
    });
 var list = solrQueryResult.ToList();//if you want list

您可以執行此操作而無需手動連接字符串:

ISolrOperations<User> solr = ServiceLocator.Current.GetInstance<ISolrOperations<User>>();
var users = solr.Query(new SolrQuery("age:20") || new SolrQuery("age:30"), options);

更多信息在這里: https : //github.com/mausch/SolrNet/blob/master/Documentation/Querying.md

暫無
暫無

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

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