.net 的弹性搜索

Elastic search for .net

我想在我的应用程序中实现弹性搜索。我有 MS-SQL 数据库。

我已经安装了弹性搜索。它正在显示 You Know,用于搜索。 我为 Nest 添加了 nuget 包。连接到弹性。使用 Nest 添加了一条记录。记录显示在 Kibana 中。

  1. 我想将SQL数据导入Elastic
  2. MS-SQL 数据中的任何更改都应反映到 Elastic
  3. 在 Elastic 中搜索复杂的模糊匹配。

我坚持第一步。

从你的描述中我可以看出你安装了弹性搜索并且运行很好。

对于第一步,您需要将 MS-SQL 中存在的数据迁移到 Elastic 搜索 mappings.You 可以为此编写一个 python 脚本。 Python 脚本应映射到索引及其相关文档。

举个例子。 -- 假设您在 MSSQL 中有一个 table,例如。员工 table 。然后逐行遍历每一行并准备一个包含一行的文档,id 将是一行的特定编号。将其插入弹性搜索中。

对于弹性搜索中的搜索 - 所有您需要根据您的要求使用匹配或复合匹配查询文档。

我在 python 中实现了相同的功能,并将数据从 postgres 迁移到弹性搜索。

  • 要将信息发送到 Elastic,您应该考虑 使用 REST API 的替代方案,Elastic 提供对 Web 的访问 API 允许您创建索引并查询记录和 您不依赖于 Nuget。
  • 例如在一个索引下开始在Elastic中索引信息 称为 testIndex ,一种称为 testdata 的类型和 0 的 Id,你会 使用与以下类似的 URI,此 URI 来自云端 Elastic 的版本,但您应该能够在托管中使用相同的版本 环境:

    https://f1fadb41bd984c72981cb12d79a79203.us-west-1.aws.found.io:9243/testindex/testdata/0 有效载荷:

    { "user" : "Test", "post_date" : "2019-08-07", "message" : "Elastic test data" }

    要查询数据,您将使用以下 URI:

    获取 https://f1fadb41bd984c72981cb12d79a79203.us-west-1.aws.found.io:9243/testindex/testdata/0

  • 您可以序列化包含来自 SQL 的数据的 C# 对象 数据库 JSON 和 post 它们像示例有效载荷一样具有弹性。

  • 同步数据的过程可以是 Asp.net core 中的定时后台作业、在事件调度程序中调度的控制台应用程序,也可以是在您检测到数据库成功更新时基于您的应用程序的事件。