我正在尝试查询ParentId = thread OR DataId = Thread的记录。查询保持对我的超时。下面的查询有问题吗?
var Test = solr.Query(new SolrQueryByField("ParentId", Thread) ||
(new SolrQueryByField("DataId", Thread)));
答案 0 :(得分:1)
我不是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
答案 1 :(得分:0)
您可以在不手动连接字符串的情况下执行此操作:
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