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, ...);