Q1。如何使用Solrnet搜索多个集合?
Q2。我创建了一个向Solr添加数据的方法, 如果我想动态分配sechma添加数据到Solr, 如何修改它?
public void SolrFeeder(SchemaFieldList DataList)
{
var solrFacility = new SolrNetFacility(SolrServer);
var container = new WindsorContainer();
container.AddFacility("solr", solrFacility);
var solr = container.Resolve<ISolrOperations<SchemaField>>();
foreach (var item in DataList.SchemaFieldList)
{
solr.Add(item);
}
solr.Commit();
}
答案 0 :(得分:3)
跨集合搜索的标准语法是在查询中提供集合的名称 - 即,如果您要查询collection1
,您仍然可以附加名为collection
的参数,其中包含一个列表您要搜索的馆藏collection=collection1,collection2,collection3
。
您可以在SolrNet中use the syntax for "Additional Parameters"向查询添加自定义参数:
ISolrOperations<Product> solr = ...
var products = solr.Query(SolrQuery.All, new QueryOptions {
ExtraParams = new Dictionary<string, string> {
{"collection", "collection1,collection2,collection3"}
}
});