Search code examples
c#solrnet

SolrNet - Is there a way to build a Solr query using a for-loop?


I am testing how SolrQueryByField will work using different combinations of indexed fields. So I have an app that has a checkbox for each indexed field and I need to query solr only for the fields that are checked. So is there a way to loop through checkbox controls and add them to the SolrQuery? Something like:

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

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

Solr.Query(query);

I am using C#


Solution

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