一.分析器主要有两种情况会被使用:

第一种是插入文档时,将text类型的字段做分词然后插入倒排索引,
第二种就是在查询时,先对要查询的text类型的输入做分词,再去倒排索引搜索

如果想要让 索引 和 查询 时使用不同的分词器,ElasticSearch也是能支持的,只需要在字段上加上search_analyzer参数

在索引时,只会去看字段有没有定义analyzer,有定义的话就用定义的,没定义就用ES预设的

在查询时,会先去看字段有没有定义search_analyzer,如果没有定义,就去看有没有analyzer,再没有定义,才会去使用ES预设的

二.几种搜索机制的比较

关键词 keyword类型 text类型 是否支持分词
term 完全匹配 查询条件中关键词不会被分词,它必须整个关键词和document中的某个分词匹配,才能搜索到,多个分词时必须连续,顺序不能颠倒。
match 完全匹配 match分词结果和text的分词结果有相同的即可
match_phrase 完全匹配 match_phrase的分词结果必须在text字段分词中都包含,而且顺序必须相同,而且必须都是连续的。
query_string     完全匹配 query_string中和match_string基本一样,区别时它不考虑顺序

测试:

在这里设置分本分词器为标准分词器,搜索分词器为ik,采用match搜索,因为ik分词器将共产党三个字分此后还是共产党,在标准分词器分过的文档中匹配不到,具体演示如下

//创建索引:

//创建索引
put /test10
{"mappings":{"properties":{"name":{"type":"text","store":true,"analyzer":"standard", "search_analyzer": "ik_smart"},"add": {"type": "text","store":true,"analyzer":"ik_smart","search_analyzer": "ik_smart"}}}
}//添加文档PUT /test10/_doc/1
{"name":"我是中国共产党","add":"我是中国共产党"
}// Ik分词器测试
GET _analyze
{"analyzer": "ik_smart","text": "共产党"}结果:
{"tokens" : [{"token" : "共产党","start_offset" : 0,"end_offset" : 3,"type" : "CN_WORD","position" : 0}]
}//标准分词器测试
GET _analyze
{"analyzer": "standard","text": "我是中国共产党"
}结果:
{"tokens" : [{"token" : "我","start_offset" : 0,"end_offset" : 1,"type" : "<IDEOGRAPHIC>","position" : 0},{"token" : "是","start_offset" : 1,"end_offset" : 2,"type" : "<IDEOGRAPHIC>","position" : 1},{"token" : "中","start_offset" : 2,"end_offset" : 3,"type" : "<IDEOGRAPHIC>","position" : 2},{"token" : "国","start_offset" : 3,"end_offset" : 4,"type" : "<IDEOGRAPHIC>","position" : 3},{"token" : "共","start_offset" : 4,"end_offset" : 5,"type" : "<IDEOGRAPHIC>","position" : 4},{"token" : "产","start_offset" : 5,"end_offset" : 6,"type" : "<IDEOGRAPHIC>","position" : 5},{"token" : "党","start_offset" : 6,"end_offset" : 7,"type" : "<IDEOGRAPHIC>","position" : 6}]
}//查询测试
GET /test10/_doc/_search
{"query":{"match":{"name": "共产党"}}
}结果:
{"took" : 1,"timed_out" : false,"_shards" : {"total" : 1,"successful" : 1,"skipped" : 0,"failed" : 0},"hits" : {"total" : {"value" : 0,"relation" : "eq"},"max_score" : null,"hits" : [ ]}
}

ES analyzer和search_analyzer的比较相关推荐

  1. ES Analyzer

    ES Analyzer Analysis[分析,动词]表示将文本处理转换为一系列短语的过程,这个过程有两处会用到: 建立倒排索引:数据写入时,Analyzer[分词器,名词]会将数据解析成多个短语[英 ...

  2. es analyzer分词

    参考:https://learnku.com/articles/35136 https://www.cnblogs.com/cjsblog/p/10171695.html https://blog.c ...

  3. ELK下es的分词器analyzer

    转载链接 :es的分词器analyzerhttps://www.cnblogs.com/xiaobaozi-95/p/9328948.html 中文分词器 在lunix下执行下列命令,可以看到本来应该 ...

  4. ES之分析器(Analyzer)

    ES-分词器(Analyzer) 把输入的文本块按照一定的策略进行分解,并建立倒排索引.在Lucene的架构中,这个过程由分析器(analyzer)完成. 主要组成 character filter: ...

  5. es springboot 不设置id_es(elasticsearch)整合SpringCloud(SpringBoot)搭建教程详解

    注意:适用于springboot或者springcloud框架 1.首先下载相关文件 2.然后需要去启动相关的启动文件 3.导入相关jar包(如果有相关的依赖包不需要导入)以及配置配置文件,并且写一个 ...

  6. doc es 中type_ES系列07:match_phrase与match_phrase_prefix query

    昨天为大家介绍了ES系列06:ik分词+Full text queries 之match query.今天TeHero为大家分享 Full text queries 的 match_phrase qu ...

  7. Spring Boot操作ES进行各种高级查询(值得收藏)

    作者 | 后青春期的Keats 来源 | http://cnblogs.com/keatsCoder/p/11341835.html SpringBoot整合ES 创建SpringBoot项目,导入 ...

  8. elasticsearch6.2.2安装中文分词插件IK analyzer

    elasticsearch6.2.2安装中文分词插件IK analyzer 哎,装了一下午的ik终于装上了,发现自己真的是非常笨了,并且es重启过程中遇到了很多的问题,下面我将手把手教大家如何安装ik ...

  9. Logstash同步mysql一对多数据到ES(踩坑日记系列)

    场景: Logstash .Kibana.ES版本:6.3.1. 使用Logstash从mysql同步用户和用户所有的宠物到ES中. 希望的格式: "register_name": ...

最新文章

  1. [ActionScript 3.0] AS向php发送二进制数据方法之——在URLRequest中构造HTTP协议发送数据...
  2. fdisk -l 找不到分区怎么办?想办法找到隐藏分区。
  3. 华为2018届校招技术岗笔试题及个人解答
  4. 剑指offer 二进制1中的个数
  5. 为什么停车类APP看似缺口巨大却没有成长起来?
  6. NVisionXR_iOS教程三 —— NVisionXR渲染一个立方体
  7. 机器学习算法在自动驾驶领域的应用大盘点!
  8. 登陆状态下加入购物车
  9. vue中的keep-alive
  10. 如何检查数组是否包含JavaScript中的对象?
  11. 强大的django-debug-toolbar,django项目性能分析工具
  12. LSGO软件技术团队2015~2016学年第三周(0914~0920)总结
  13. H3C交换机4核心节点IRF2虚拟化下检测机制
  14. Bootstrap 调用插件
  15. Sql Server 指定列的乘积
  16. linux opendir php,php目录遍历函数opendir用法实例
  17. 安大计算机学院李炜教授,李炜-北京航空航天大学计算机学院
  18. Missing Push Notification Entitlement警告-----以及解决方法
  19. Atitit 代码的艺术 attilax 艾提拉著作 1. 代码就像一首歌,一个文章,一个绘画 1 2. 代码就像文章 2 2.1. ,要流畅读出来,使用dsl 方法连模式 2 2.2. 段落划分与
  20. ubuntu mysql5.5编码_Ubuntu下MySQL5.5编码设置

热门文章

  1. AD620-仪表放大器-快速上手使用
  2. python tfidf特征变换_Python中的TfidfVectorizer参数解析
  3. Carla:ROS bridge installation for ROS 1
  4. 双非本科22届暑期实习,成功拿到B站、阿里实习offer
  5. 安装MATLAB时应如何选择产品组件
  6. EMC测试之静电放电抗扰度测试(ESD)
  7. 帮助中心在线制作工具推荐这4款,很不错哟!
  8. 事业单位招聘网上报名系统-适用于企事业单位/人力资源公司人事招考系统
  9. 全志平板电脑linux sunxi,全志A10平板电脑装配ubuntu 10.04LTS(与Android构建双系统)...
  10. java xstream_XStream 用法汇总