Solr - 如何使用C#代码从SolrNet API触发DIH

时间:2017-12-11 13:29:23

标签: solr solrnet

Solr版本:: 6.6.1

使用基于C#的应用程序的SolrNet API

我希望用C#代码调用或触发数据导入处理程序 SolrNet的帮助。但我无法在SolrNet中找到任何教程 API。我可以从solr管理UI轻松调用DIH,但我需要从外部应用程序调用它。

请建议代码片段如何从C#调用数据导入操作 申请?

2 个答案:

答案 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);
        }