Solr版本:: 6.6.1
使用基于C#的应用程序的SolrNet API
我希望用C#代码调用或触发数据导入处理程序 SolrNet的帮助。但我无法在SolrNet中找到任何教程 API。我可以从solr管理UI轻松调用DIH,但我需要从外部应用程序调用它。
请建议代码片段如何从C#调用数据导入操作 申请?
答案 0 :(得分:0)
我不认为完全可以从Solr.NET中完成,简短的介绍给了我一个想法,目前只有类负责DIH状态页面,这很好,但不包括初始过程。我认为这最近被丢弃了,因为不需要这个功能。
在您拥有的SolrBasicServer
课程中:
public SolrDIHStatus GetDIHStatus(KeyValuePair<string, string> options) {
var response = connection.Get("/dataimport", null);
var dihstatus = XDocument.Parse(response);
return dihStatusParser.Parse(dihstatus);
}
获得了DIH。最有可能的是,您需要扩展此类并执行类似的操作(我不是C#开发人员,因此不能100%确定代码):
connection.Post("/dataimport?command=full-import", null);
或与delta-import
命令类似的东西,然后获取状态部分。
如果更新Solr.NET不是你的情况,你仍然可以通过普通的HTTP调用用一些更好的C#库来触发它,并向http://host:port/solr/collection-name/dataimport?command=full-import
发送POST请求
答案 1 :(得分:0)
string solrTargetDIHUrl = "http://localhost:8983/solr/dih/dataimport?command=delta-import";
try
{
using (var solrClient = new HttpClient())
{
var resultObj = solrClient.GetAsync(new Uri(solrTargetDIHUrl)).Result;
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("\t\t Data Import Triggered Successfully !");
Console.ResetColor();
}
}
catch(Exception ex)
{
Console.WriteLine("ERROR in DIH Trigger >>>>> " + ex.Message + "||" + ex.StackTrace);
}