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

阅读网站模板下载广东省监理建设协会网站

阅读网站模板下载,广东省监理建设协会网站,省级门户网站建设,源码站文章目录 背景创建索引指定 _all 分词为空格创建索引插入索引数据全字段的模糊检索 创建索引指定 _all 分词为 keyword索引创建插入数据模糊检索 创建索引不配置 _all不同分词的结果启示录 背景 2018年参与使用 ES 和 Kafka 项目的开发#xff0c;当时主要是做前端开发#… 文章目录 背景创建索引指定 _all 分词为空格创建索引插入索引数据全字段的模糊检索 创建索引指定 _all 分词为 keyword索引创建插入数据模糊检索 创建索引不配置 _all不同分词的结果启示录 背景 2018年参与使用 ES 和 Kafka 项目的开发当时主要是做前端开发虽然主要工作领域是后端但是一直很排斥 ES 和 Kafka 这两个组件后来前后台开发任务交替断断续续补了一下这两个组件的基础原理总是记不住碰到的一些小问题解决后就忘记了这俩组件的技术债一直欠着。 这周避不开 ES 的一个模糊检索问题索引创建的时候没有指定 _all 的分词方式对模糊检索中包含中文的请求的影响是什么 query_string 全字段检索时使用的分词方式是什么_all 指定的默认是standard。query_string 指定字段检索时使用的分词方式是什么whitespace。索引 mapping 设置了_all 的分词对全字段检索的影响使用指定的分词方式。创建字段的 mapping 里面没有设置 analyzer 的话默认的分词方式是什么whitespace。 本文以三个不同索引的全字段模糊检索ES版本5.4.0 环境验证结果如下 mytest 索引设置 _all 分词为 whitespace有空格走分词中文词组正常分词能查到结果。article-01 索引设置 _all 分词为 keyword期待输入检索参数即使包含空格也能直接检出符合条件的数据实际什么都查不出来。article-02 索引没有设置 _all 分词有空格正常分词检索中文单个词能查到词语查不到。 创建索引指定 _all 分词为空格 创建索引 执行 PUT http://IP:9200/mytest 请求指定 _all 分词为空格 {index_patterns: [log*,product*],settings: {number_of_shards: 2,number_of_replicas: 1},mappings: {article: {_all: {analyzer: whitespace},properties: {ip: {type: keyword},method: {type: keyword}}}} }执行结果创建一个索引名称是 mytest 类型 doc 的索引。 插入索引数据 发送 PUT mytest/doc/1 ...5 次请求插入5条数据 全字段的模糊检索 验证全字段上模糊检索包含空格和不包含空格的检索结果 索引指定了 _all 的分词为空格分词所以检索字符串进行空格分词后查询结果同时查出来分词之前的 239 和 001 的内容。其实我希望得到的是精确的模糊匹配的结果的空格分词方式不行那么改成 keyword 分词呢 创建索引指定 _all 分词为 keyword 索引创建 按相同方法新建一个索引 _all 的分词类型为 keyword mappings: {article: {_all: {analyzer: keyword},properties: {method: {type: keyword},ip: {type: keyword}}} }插入数据 相同操作插入数据 模糊检索 1、输入包含空格的关键字输入一个带空格的检索出的结果也不符合预期无数据。 2、输入不含空格包含在数据中、任意一部分的关键字能查到数据 创建索引不配置 _all 相同操作创建索引 article-02不配置 _all 属性的时候插入几条数据 模糊检索使用的中文词组 单个中文汉字输入时能检索到 不同分词的结果 1、standard 分词中文字符串拆成一个个的英文字符串以空格为单位进行拆分 2、whitespace 分词按空格切分 3、keyword 分词: 直接作为一个整体不拆分。 启示录 首先有一个知识点是确定的在使用 _all 进行全字段检索的时候分词方式与 _all 设定的分词方式有关如果索引没有设置则就是默认的 standard 分词方式。 其次使用空格的分词方式那对模糊检索包含空格的内容作分词结果跟我们常规理解的 SQL 形式的 Like 语法还是不一样的我们希望的是空格被作为一个整体内容进行检索的。 第三点网络上说的 query_string 的关键字使用 (*目标字符串*) 包裹后就不会分词这点无效。 第四点未指定 _all 的分词方式时对 ES6.8 以上的高版本的中文词组检索没有影响。 最后一个问题为什么设置全文检索的分词为 keyword 后什么输入包含空格的关键字后检索不到了呢 ES _all、_source的使用_all字段连接所有字段的值构成一个用空格space分隔的大 string 而被 analyzed 和 indexdocument 主体保存在_source中。 按这个解释当 _all 分词方式是 keyword 的时候目标检索关键字没有被分词而作为一个整体了。由于 _all 字段存储的值是按空格进行分词索引后的内容是不含空格所以目标检索关键字中有空格就查不到数据。
http://www.dnsts.com.cn/news/11051.html

相关文章:

  • 网站自动生成网页html5酷炫网站
  • 微信餐饮微网站建设wordpress图形验证码
  • win7 iis发布网站教程网站制作公司加盟
  • 网站建设用什么网站好一点好的企业管理网站
  • 华强北ic网站建设网站所有权问题
  • 柯桥网站建设书生商友导视设计图片
  • 河北网站建设哪里好做网站 做app好
  • 怎么把网站黑了html网站分页怎么做的
  • 网站建设公司电话什么是搜索引擎优化?
  • 网站后台模板制作流程春秋网络优化技术团队介绍
  • 网站开发平台 eclipse成都成达设计院
  • 走廊文化建设图片网站网站开发实用技术答案
  • 开公司建网站家具公司网站页面设计模板
  • 深圳网站建设营销策划软件定制开发优势
  • 免费招聘网站招聘wordpress淘宝联盟模板
  • 网站源码大全最新奇迹网页游戏排行
  • 做类似昵图网网站wordpress 网页存在
  • 十堰网站建设费用哈尔滨模板建站推荐
  • 虹口网站制作h5网站建设报价多少钱
  • 网站建设合同书缴纳印花税吗织梦网站做视频
  • 2008系统如何做网站Wordpress 报表的插件
  • 鹰潭门户网站建设费用为什么会显示危险网站
  • 网站建设相关法律规定网站开发算法
  • 网站建设基础流程摘要wordpress订单管理插件
  • 建一个手机网站多少钱宁波app制作公司
  • 博客类网站模板湘潭网站推广
  • 购物商城网站制作app官网模板
  • 做变形字的网站推广品牌
  • 网站赚钱方法四川省建设厅官方网站联系电话
  • 网站建设的ppt模板网站申请备案流程