Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SolrNet-有没有一种方法可以使用for循环构建Solr查询?_C#_Solrnet - Fatal编程技术网

C# SolrNet-有没有一种方法可以使用for循环构建Solr查询?

C# SolrNet-有没有一种方法可以使用for循环构建Solr查询?,c#,solrnet,C#,Solrnet,我正在测试solrqueryfield如何使用索引字段的不同组合工作。所以我有一个应用程序,每个索引字段都有一个复选框,我只需要为选中的字段查询solr。那么,有没有办法循环检查复选框控件并将它们添加到SolrQuery?比如: string query=""; Foreach (var checkbox in checkboxlist) { if(checkbox.checked) { query += " new SolrQueryByField

我正在测试
solrqueryfield
如何使用索引字段的不同组合工作。所以我有一个应用程序,每个索引字段都有一个复选框,我只需要为选中的字段查询solr。那么,有没有办法循环检查复选框控件并将它们添加到
SolrQuery
?比如:

string query="";
Foreach (var checkbox in checkboxlist)
{

     if(checkbox.checked)
      {
           query += " new SolrQueryByField(checkbox.name)"
       }
}

Solr.Query(query);
我使用的是C#

var querys=checkboxlist
.其中(x=>x.checked)
.Select(x=>newsolrqueryfield(x.name,关键字))
.Cast();
var query=new SolrMultipleCriteriaQuery(查询,SolrMultipleCriteriaQuery.Operators.AND);
var results=solr.Query(Query,…);
var查询=复选框列表
.其中(x=>x.checked)
.Select(x=>newsolrqueryfield(x.name,关键字))
.Cast();
var query=new SolrMultipleCriteriaQuery(查询,SolrMultipleCriteriaQuery.Operators.AND);
var results=solr.Query(Query,…);

@Itaymav很抱歉,我没有明白你的要求?如果您询问我是否在服务器端查询solr,那么是的,我正在尝试为此提供一个C代码。
新建SolrQueryField(checkbox.name)
->这缺少一个参数,字段或值。请澄清。@MauricioScheffer很抱歉,这应该更像新的SolrQueryField(checkbox.name,keyword)。Where关键字是我需要在每个选中字段中搜索的内容。“checkbox.name”也是索引字段的名称。@ItayMov很抱歉,我没有得到您要的内容?如果您询问我是否在服务器端查询solr,那么是的,我正在尝试为此提供一个C代码。
新建SolrQueryField(checkbox.name)
->这缺少一个参数,字段或值。请澄清。@MauricioScheffer很抱歉,这应该更像新的SolrQueryField(checkbox.name,keyword)。Where关键字是我需要在每个选中字段中搜索的内容。此外,“checkbox.name”是索引字段的名称。它工作得非常好,再次感谢。以下是代码的最终版本。只需要将checboxlist转换为ListItem var querys=cblFieldsToQuery.Items.cast()。其中(x=>x.Selected)。选择(x=>newsolrqueryfield(x.Value,query)).cast();var query=new SolrMultipleCriteriaQuery(查询,SolrMultipleCriteriaQuery.Operators.AND);var results=solr.Query(Query,…);它工作得很好,再次感谢你。以下是代码的最终版本。只需要将checboxlist转换为ListItem var querys=cblFieldsToQuery.Items.cast()。其中(x=>x.Selected)。选择(x=>newsolrqueryfield(x.Value,query)).cast();var query=new SolrMultipleCriteriaQuery(查询,SolrMultipleCriteriaQuery.Operators.AND);var results=solr.Query(Query,…);
var queries = checkboxlist
    .Where(x => x.checked)
    .Select(x => new SolrQueryByField(x.name, keyword))
    .Cast<ISolrQuery>();
var query = new SolrMultipleCriteriaQuery(queries, SolrMultipleCriteriaQuery.Operators.AND);
var results = solr.Query(query, ...);