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

Solr - How to trigger the DIH from SolrNet API with C# code

Solr 版本:: 6.6.1

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

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

请建议代码片段,我如何从基于 C# 的 应用 ?

我认为完全从Solr.NET做是不可能的,简单看一下让我有一个想法,目前只有class负责DIH状态页面,这很好,但不包括初始过程。我认为这最近被丢弃了,因为不需要这个功能。

SolrBasicServer class 你有:

public SolrDIHStatus GetDIHStatus(KeyValuePair<string, string> options) {
            var response = connection.Get("/dataimport", null);
            var dihstatus = XDocument.Parse(response);
            return dihStatusParser.Parse(dihstatus);
        }

正在获取 DIH。最有可能的是,您需要扩展这个 class 并做类似的事情(我不是 C# 开发人员,所以对代码不是 100% 确定):

connection.Post("/dataimport?command=full-import", null);

或与 delta-import 命令类似的东西,然后获取状态部分。

如果更新 Solr.NET 不是您的情况,您仍然可以通过使用一些首选 C# 库的常规 HTTP 调用来触发它,然后向 http://host:port/solr/collection-name/dataimport?command=full-import[= 发出 POST 请求15=]

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