ElasticSearch中analyzer和search_analyzer

这篇具有很好参考价值的文章主要介绍了ElasticSearch中analyzer和search_analyzer。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基于elasticsearch7.6.1 和 kibana7.6.1

1. 基础介绍

analyzer:插入文档时,将text类型的字段做分词然后插入倒排索引。

search_analyzer:查询时,先对要查询的text类型的输入做分词,再去倒排索引中搜索。

如果想要让'索引'和'查询'时使用不同的分词器,ElasticSearch也是能支持的,只需要在字段上加上search_analyzer参数。索引时,只会去看字段有没有定义analyzer,有定义的话就用定义的,没定义就用es预设的。查询时,会先去看字段有没有定义search_analyzer,如果没有定义,就去看有没有analyzer,再没有定义,才会去使用es预设的

2. 案例

# 创建索引
PUT /mapping_analyzer
{
  "mappings": {
    "dynamic": "strict",
    "properties": {
      "name": {
        "type": "text",
        "analyzer": "standard",
        "search_analyzer": "ik_smart"
      },
      "desc": {
        "type": "text",
        "analyzer": "ik_smart",
        "search_analyzer": "ik_smart"
      }
    }
  }
}


# 添加文档
PUT /mapping_analyzer/_doc/1
{
  "name": "我是中国共产党",
  "desc": "我是中国共产党"
}

# 查询测试 (name字段--索引时使用standard, 查询时使用ik_smart)
GET /mapping_analyzer/_search
{
  "query": {
    "match": {
      "name": "党"
    }
  }
}


GET /mapping_analyzer/_search
{
  "query": {
    "match": {
      "name": "中国共产党"
    }
  }
}


# 查询测试 (desc字段--索引时使用ik_smart, 查询时使用ik_smart)
GET /mapping_analyzer/_search
{
  "query": {
    "match": {
      "desc": "中国共产党"
    }
  }
}

3. ik_smart和standard分词器的区别

# ik_smart分词器
GET _analyze
{
  "analyzer": "ik_smart",
  "text": "我是中国共产党"
}


# standard分词器
GET _analyze
{
  "analyzer": "standard",
  "text": "我是中国共产党"
}文章来源地址https://www.toymoban.com/news/detail-439422.html

到了这里,关于ElasticSearch中analyzer和search_analyzer的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Elasticsearch:Standard Text Analyzer - 标准文本分析器

    Elasticsearch 提供了超过很多开箱即用的分析器,我们可以在文本分析阶段使用它们。 这些分析器很可能足以满足基本情况,但如果需要创建自定义分析器,可以通过使用构成该模块的所需组件实例化一个新的分析器模块来实现。 下表列出了 Elasticsearch 为我们提供的分析器:

    2023年04月26日
    浏览(95)
  • elasticsearch报错:exceeds the [index.highlight.max_analyzed_offset] limit [1000000]

    The length [27277624] of field [content] in doc[2]/index[1234567890abcdefg] exceeds the [index.highlight.max_analyzed_offset] limit [1000000]. To avoid this error, set the query parameter [max_analyzed_offset] to a value less than index setting [1000000] and this will tolerate long field values by truncating them. ********************************************

    2023年04月25日
    浏览(40)
  • ElasticSearch 学习8 :ik分词器的扩展,及java调用ik分词器的analyzer

    1.前言: 上篇已经说过ik的集成,这篇说下ik的实际使用 2.2、IK分词器测试 IK提供了两个分词算法 ik_smart 和 ik_max_word ik_smart :为最少切分 ik_max_word :为最细粒度划分。 2.2.1、最小切分示例 #分词器测试ik_smart POST _analyze { \\\"analyzer\\\":\\\"ik_smart\\\", \\\"text\\\":\\\"我是中国人\\\" }  结果: 2.2.2、最

    2024年02月04日
    浏览(40)
  • Elasticsearch Search API之(Request Body Search 查询主体)

    sentence 句子,使用Java的BreakIterator确定的下一个句子边界处的突出显示片段。您可以使用boundary_scanner_locale指定要使用的区域设置。unified highlighter高亮器默认行为。 word 单词,由Java的BreakIterator确定的下一个单词边界处高亮显示的片段。 boundary_scanner_locale 区域设置。该参数采

    2024年04月09日
    浏览(47)
  • Elasticsearch Search API之(Request Body Search 查询主体)(1)

    “failed”:0 }, “hits”:{ “total”:1, “max_score”:0.2876821, “hits”:[ { “_index”:“map_highlighting_01”, “_type”:“_doc”, “_id”:“erYsbmcBeEynCj5VqVTI”, “_score”:0.2876821, “_source”:{ “context”:“城中西路可以受理外地二代身份证的办理。” }, “highlight”:{ // @1 “context”:[ “城中西

    2024年04月13日
    浏览(49)
  • Elasticsearch报错:search.max_async_search_response_size

    Elasticsearch报错: Can\\\'t store an async search response larger than [10485760] bytes. This limit can be set by changing the [search.max_async_search_response_size] setting. 导致上述问题的原因是,ES默认response的大小是10mb,而返回的值超过了,解决方案,在confgi/下面找到elasticsearch.yml,如果elasticsearch.yml没有定义

    2024年02月11日
    浏览(75)
  • Elasticsearch:Async search API

    当我们想要执行持续时间较长的查询时,执行异步操作是一个很好的选择。 在这篇文章中,我们将学习如何管理异步查询。异步操作由 async search API 执行。 异步搜索 API 具有与 _search API 相同的参数,因此你无需构建特殊查询。 在我之前的文章 “Elasticsearch:异步搜索 - as

    2023年04月08日
    浏览(45)
  • 基于 centos7 搭建 laravel+scout+elasticsearch+ik-analyzer 用于中文分词全文检索服务及测试

    浏览该文章,建议先食用 异常问题 这一节 软件/框架 版本 jdk 19.0.2 elasticsearch 8.1.1 ik-analyzer 8.1.1 laravel 7.x-dev elasticsearch/elasticsearch 7.17.1 tamayo/laravel-scout-elastic 8.0.3 下载jdk传送门 安装 下载:wget https://download.oracle.com/java/19/latest/jdk-19_linux-x64_bin.rpm 安装:rpm -ivh jdk-19_linux-x64_bin.

    2023年04月09日
    浏览(43)
  • Elasticsearch/Enterprise Search/Kibana安装记录

    参考文章:https://www.elastic.co/guide/en/elasticsearch/reference/8.8/deb.html 服务器系统:Ubuntu 20.04.4 LTS (GNU/Linux 5.4.0-153-generic x86_64) elasticsearch版本:8.8.2(软件包发行版) 导入 elasticsearch PGP密钥 我们使用 Elasticsearch 签名密钥(PGP 密钥D88E42B4,可从https://pgp.mit.edu获取)和指纹对所有包进行签

    2024年02月16日
    浏览(38)
  • Elasticsearch Search Scroll API(滚动查询)

    参考:Elasticsearch Search Scroll API(滚动查询) - 简书 Elasticsearch 中,传统的分页查询使用 from+size 的模式, from 就是页码,从 0 开始。默认情况下,当 (from+1)*size 大于 10000 时,也就是已查询的总数据量大于 10000 时,会出现异常。 如下,用循环模拟一个连续分页查询: 最终当

    2023年04月20日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包