当前位置: 首页 > news >正文

.net core 6 集成 elasticsearch 并 使用分词器

1、nuget包安装NEST、安装elasticsearch、kibana、ik分词器、拼音分词器

2、创建操作对象

//索引库
static string indexName = "testparticper";
//es 操作对象
ElasticClient elasticClient = new ElasticClient(new ConnectionSettings(new Uri("http://192.168.30.98:9200")));

3、创建一个索引库,字段使用ik分词器

#创建索引库
PUT /testparticper
{"mappings": {"properties": {"id": {"type": "keyword","index": false},"name": {"type": "text","analyzer": "ik_smart","copy_to": "all"},"password": {"type": "text","index": false},"all": {"type": "text","analyzer": "ik_smart"}}}
}

4、创建需要的实体

/// <summary>/// 数据/// </summary>public class EsData{/// <summary>/// 名称/// </summary>public string name { get; set; } = string.Empty;/// <summary>/// ,密码/// </summary>public string password { get; set; } = string.Empty;}/// <summary>/// 分词器/// </summary>public class EsAnalyzer{/// <summary>/// 名称/// </summary>public string analyzer { get; set; } = string.Empty;/// <summary>/// ,密码/// </summary>public string text { get; set; } = string.Empty;}

5、创建两个使用的方法

 ps:查询方法和直接使用语句一样

        分词器方法没有找到现成使用方法,所有直接http调用,效果一致

        

GET /testparticper/_search
{"query": {"term": {"name": "名称"}}
}
/// <summary>/// 获取索引/// </summary>/// <returns></returns>public string GetIndex(string name){ISearchResponse<EsData> esData = elasticClient.Search<EsData>(x =>{return x.Index(indexName).Query(q => q.Term("name", name));});return esData.Documents.ToJson();}/// <summary>/// 分词器/// </summary>/// <returns></returns>public string Analyze(string body){string str = new HttpTool().PostSendMessage("http://192.168.30.98:9200", "/_analyze", body);return str;}

6、es使用

/// <summary>/// es操作/// </summary>[Route("[controller]")][StartAutoWrite]public class ElasticsearchController : Controller{[AutoWrite]ElasticsearchTool? elasticsearch;/// <summary>/// 查询/// </summary>/// <returns></returns>// GET: api/values[HttpGet("exist")]public string Exist([FromQuery] string name){return elasticsearch?.GetIndex(name) ?? string.Empty;}/// <summary>/// 分词器/// </summary>/// <param name="esAnalyzer"></param>/// <returns></returns>[HttpPost("analyze")]public string Analyze([FromBody] EsAnalyzer esAnalyzer){return elasticsearch?.Analyze(esAnalyzer.ToJson()) ?? string.Empty;}}

7、响应效果

http://www.lryc.cn/news/293785.html

相关文章:

  • Unity项目从built-in升级到URP(包含早期版本和2023版本)
  • 2月4号作业
  • 瑞_23种设计模式_建造者模式
  • GA/T 1707-2019 防爆安全门检测
  • k8s学习-数据管理
  • java hutool工具类实现将数据下载到excel
  • 【C/Python】Gtk部件ListStore的使用
  • Swift 入门之自定义类型的模式匹配(Pattern Matching)
  • MySQL-----DML基础操作
  • 提前祝大家新年好!来看看社区 2023 都得了哪些奖吧
  • Redis核心技术与实战【学习笔记】 - 19.Pika:基于SSD实现大容量“Redis”
  • qt-C++笔记之contains()和isEmpty()函数、以及部分其他函数列举
  • 极速搭建幻兽帕鲁私服,叫上好友春节假期一起联机畅玩帕鲁
  • MagicVideo-V2:多阶段高保真视频生成框架
  • 【三】【C++】类与对象(二)
  • ffmpeg 输入文件,输入出udp-ts 指定pid
  • 自研人工智能小工具-小蜜蜂(国外ChatGpt的平替)
  • Stable Diffusion 模型下载:ReV Animated
  • 某赛通电子文档安全管理系统 PolicyAjax SQL注入漏洞复现
  • Prometheus 采集Oracle监控数据
  • 【ARM Trace32(劳特巴赫) 使用介绍 3.1 -- 不 attach core 直接访问 memory】
  • MySQL事务和SQL优化
  • [C语言]结构体初识
  • 跨平台开发:浅析uni-app及其他主流APP开发方式
  • MyBatis常见面试题汇总
  • juc并发线程学习笔记(一)
  • 力扣热门100题刷题笔记 - 3.无重复字符的最长子串
  • 达梦数据库死锁排查与解决
  • 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之TextClock组件
  • CICD注册和使用gitlab-runner常见问题