当前位置: 首页 > 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、响应效果

相关文章:

  • 学习方法分享
  • 关于C++的system()函数安全隐患问题
  • 虹科技术丨一文详解IO-Link Wireless技术如何影响工业无线自动化
  • 定义HarmonyOS IDL接口
  • 【MybatisPlus篇】查询条件设置(范围匹配 | 模糊匹配 | 空判定 | 包含性判定 | 分组 | 排序)
  • stack_queue:三个关键注意事项解析
  • Mac M1使用PD虚拟机运行win10弹出“内部版本已过期立即安装新的windows内部版本”
  • 手机云控制发电机组 有网络随时随地操控监控运行
  • 【劳德巴赫 Trace32 高阶系列 3 -- trace32 svf 文件操作命令】
  • 场效应管学习笔记
  • 基于SpringBoot Vue学生成绩管理系统
  • 【Kafka】服务器Broker与Controller详解
  • 【unity小技巧】FPS简单的射击换挡瞄准动画控制
  • 如何确定子网地址(范例)?
  • 【论文解读】Collaboration Helps Camera Overtake LiDAR in 3D Detection
  • 网络传输文件的问题
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • JS专题之继承
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • mysql_config not found
  • Node项目之评分系统(二)- 数据库设计
  • Spring Cloud Feign的两种使用姿势
  • Spring Cloud中负载均衡器概览
  • 初识 beanstalkd
  • 初识MongoDB分片
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • #Linux(权限管理)
  • #每日一题合集#牛客JZ23-JZ33
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • $forceUpdate()函数
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (Java)【深基9.例1】选举学生会
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (五)网络优化与超参数选择--九五小庞
  • (一) storm的集群安装与配置
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • @KafkaListener注解详解(一)| 常用参数详解
  • [ARM]ldr 和 adr 伪指令的区别
  • [BZOJ1040][P2607][ZJOI2008]骑士[树形DP+基环树]
  • [BZOJ1060][ZJOI2007]时态同步 树形dp
  • [GN] Vue3.2 快速上手 ---- 核心语法2
  • [IE 技巧] 显示/隐藏IE 的菜单/工具栏
  • [JavaEE系列] Thread类的基本用法
  • [LeeCode]-Divide Two Integers 不用乘除的除法运算
  • [leetcode 189][轮转数组]
  • [Linux] Ubuntu install Miniconda
  • [Linux]知识整理(持续更新)
  • [OPEN SQL] 新增数据