共有 92 个国家和地区的代表队参加了去年的平昌冬奥会。 共有 49 个国家和地区的代表队参加了去年的平昌冬季残奥会。 Elastic 的员工遍布全球 34 个国家/地区。 在很多国家/地区内,很多人都会使用自己的母语撰写邮件。 现在,您希望通过韩语关键字“올림픽대회”来搜索一封邮件。

https://www.elastic.co/guide/en/elasticsearch/guide/current/language-intro.html 对处理以多种语言编写的文档时会遇到的问题进行了说明,但其中所使用的示例大部分均为欧洲语言,也无需任何任何自定义插件。 本文介绍了适用于韩文、日文和中文的自定义插件(语言分析工具),并且介绍了一种使用多字段来对多语言文本进行索引和查询的方法。

标准分析工具: 默认分析工具

需要使用语言分析工具方能进行全文本搜索。 默认情况下,均采用标准分析工具,然而其可能并非最佳选择,对中文、日文和韩文文本来说,尤为如此。 我们在下面分别针对韩文、日文和中文提供了标准分析工具的应用示例。这些文字是关于平昌奥运会的节选。

韩文

POST _analyze
{"analyzer": "standard","text": "제23회 동계올림픽대회는 대한민국 강원도 평창에서 2018년 2월 9일부터 25일까지 17일간 개최됩니다. 대한민국 평창은 세 번의 도전 끝에 지난 2011년 7월 6일 열린 제123차 IOC 총회에서 과반 표를 획득하며 2018년 동계올림픽 개최지로 선정되었습니다. 이로써 대한민국에서는 1988년 서울 올림픽 이후 30년 만에, 평창에서 개∙폐회식과 대부분의 설상 경기가 개최되며, 강릉에서는 빙상 종목 전 경기가, 그리고 정선에서는 알파인 스키 활강 경기가 개최될 예정입니다."
}
=>
{"tokens": [{"token": "제23회","start_offset": 0,"end_offset": 4,"type": "<ALPHANUM>","position": 0},{"token": "동계올림픽대회는","start_offset": 5,"end_offset": 13,"type": "<HANGUL>","position": 1},
…
韩语是一种黏着性语言,名词(例如“동계올림픽대회”)后面通常都跟有后置词(例如“는”)。 若要实现更佳的搜索效果,应当将后置词分隔开来或者将其删掉,但是标准分析工具却无法做到这一点,因为它会将名词与后置词作为一个整体来看待。

日文

POST _analyze
{"analyzer": "standard","text": "第23回冬季オリンピック大会は大韓民国江原道平昌で2018年2月9日から25日までの17日間、開催されます。大韓民国・平昌は三度の挑戦の末、2011年7月7日に開かれた第123回IOC総会で過半数票を獲得し、2018年冬季オリンピック及びパラリンピックの開催地に選ばれました。これにより1988年ソウルオリンピック開催後30年の時を経てついに、大韓民国で最初の冬季パラリンピックの舞台が繰り広げられます。平昌で開・閉会式とほぼ全ての雪上競技が開催され、江陵では氷上種目全競技が、そして旌善ではアルペンスキー滑降競技が開催される予定です。"
}
=>
{"tokens": [{"token": "第","start_offset": 0,"end_offset": 1,"type": "<IDEOGRAPHIC>","position": 0},{"token": "23","start_offset": 1,"end_offset": 3,"type": "<NUM>","position": 1},{"token": "回","start_offset": 3,"end_offset": 4,"type": "<IDEOGRAPHIC>","position": 2},{"token": "冬","start_offset": 4,"end_offset": 5,"type": "<IDEOGRAPHIC>","position": 3},{"token": "季","start_offset": 5,"end_offset": 6,"type": "<IDEOGRAPHIC>","position": 4},{"token": "オリンピック","start_offset": 6,"end_offset": 12,"type": "<KATAKANA>","position": 5},{"token": "大","start_offset": 12,"end_offset": 13,"type": "<IDEOGRAPHIC>","position": 6},{"token": "会","start_offset": 13,"end_offset": 14,"type": "<IDEOGRAPHIC>","position": 7},{"token": "は","start_offset": 14,"end_offset": 15,"type": "<HIRAGANA>","position": 8},
…
日语也是一种黏着性语言,名词(例如“冬季オリンピック大会”)后面通常都跟有后置词(例如“は”)。 同理,若要实现更佳的搜索效果,应当将后置词分隔开来或者将其删掉,但是标准分析工具却无法做到这一点,因为它会将名词与后置词作为一个整体来看待。 更糟的是,日语名词形式不一,有的为日文汉字,有的为假名,但是标准分析工具却会将每个日文汉字字符作为一个单独的符号。

中文

POST _analyze
{"analyzer": "standard","text": "第23届冬季奥运会将于2018年2月9日-25日在韩国江原道平昌展开。韩国平昌在第三次申奥之后,于2011年7月6日召开的第123届国际奥委会全会上被选定为2018年冬季奥运会的主办地。由此,韩国自1988年举办首尔夏季奥运会以后,时隔30年,将首次举办冬季奥运会。该届冬奥会的开·闭幕式以及大部分的雪上运动将在平昌进行,而所有冰上运动将在江陵、高山滑雪滑降比赛则将在旌善进行。"
}
=>
{"tokens": [{"token": "第","start_offset": 0,"end_offset": 1,"type": "<IDEOGRAPHIC>","position": 0},{"token": "23","start_offset": 1,"end_offset": 3,"type": "<NUM>","position": 1},{"token": "届","start_offset": 3,"end_offset": 4,"type": "<IDEOGRAPHIC>","position": 2},{"token": "冬","start_offset": 4,"end_offset": 5,"type": "<IDEOGRAPHIC>","position": 3},{"token": "季","start_offset": 5,"end_offset": 6,"type": "<IDEOGRAPHIC>","position": 4},{"token": "奥","start_offset": 6,"end_offset": 7,"type": "<IDEOGRAPHIC>","position": 5},{"token": "运","start_offset": 7,"end_offset": 8,"type": "<IDEOGRAPHIC>","position": 6},{"token": "会","start_offset": 8,"end_offset": 9,"type": "<IDEOGRAPHIC>","position": 7},
...
同理,标准分析工具并不知道“冬季奥运会”的具体含义,会将所有字符分割开来,而不会将其视为一个整体。

针对具体语言的分析工具: 自定义插件

借助适用于具体语言的分析工具,我们可以获得更佳的搜索体验。 日文、中文和韩文的热门分析工具分别是 kuromoji、smartcn 和 openkoreantext-analyzer。 您首先必须在每个节点上安装这些插件,然后才能运行下列示例。 请注意:由于 openkoreantext-analyzer 未在 Elastic 仓库中进行托管,所以您必须使用完整的 URL,或者首先将其下载下来并进行安装。

韩文

POST _analyze
{"analyzer": "openkoreantext-analyzer","text": "제23회 동계올림픽대회는 대한민국 강원도 평창에서 2018년 2월 9일부터 25일까지 17일간 개최됩니다. 대한민국 평창은 세 번의 도전 끝에 지난 2011년 7월 6일 열린 제123차 IOC 총회에서 과반 표를 획득하며 2018년 동계올림픽 개최지로 선정되었습니다. 이로써 대한민국에서는 1988년 서울 올림픽 이후 30년 만에, 평창에서 개∙폐회식과 대부분의 설상 경기가 개최되며, 강릉에서는 빙상 종목 전 경기가, 그리고 정선에서는 알파인 스키 활강 경기가 개최될 예정입니다."
}
=>
{"tokens": [{"token": "제","start_offset": 0,"end_offset": 1,"type": "Noun","position": 0},{"token": "23회","start_offset": 1,"end_offset": 4,"type": "Number","position": 1},{"token": "동계올림픽","start_offset": 5,"end_offset": 10,"type": "Noun","position": 2},{"token": "대회","start_offset": 10,"end_offset": 12,"type": "Noun","position": 3},
...

现在,您可以看到所有后置词均已删除。

日文

POST _analyze
{"analyzer": "kuromoji","text": "第23回冬季オリンピック大会は大韓民国江原道平昌で2018年2月9日から25日までの17日間、開催されます。大韓民国・平昌は三度の挑戦の末、2011年7月7日に開かれた第123回IOC総会で過半数票を獲得し、2018年冬季オリンピック及びパラリンピックの開催地に選ばれました。これにより1988年ソウルオリンピック開催後30年の時を経てついに、大韓民国で最初の冬季パラリンピックの舞台が繰り広げられます。平昌で開・閉会式とほぼ全ての雪上競技が開催され、江陵では氷上種目全競技が、そして旌善ではアルペンスキー滑降競技が開催される予定です。"
}
=>
{"tokens": [{"token": "第","start_offset": 0,"end_offset": 1,"type": "word","position": 0},{"token": "23","start_offset": 1,"end_offset": 3,"type": "word","position": 1},{"token": "回","start_offset": 3,"end_offset": 4,"type": "word","position": 2},{"token": "冬季","start_offset": 4,"end_offset": 6,"type": "word","position": 3},{"token": "オリンピック","start_offset": 6,"end_offset": 12,"type": "word","position": 4},{"token": "大会","start_offset": 12,"end_offset": 14,"type": "word","position": 5},
...
所有后置词均已删掉,并且日文汉字并未被分解得支离破碎。

中文

POST _analyze
{"analyzer": "smartcn","text": "第23届冬季奥运会将于2018年2月9日-25日在韩国江原道平昌展开。韩国平昌在第三次申奥之后,于2011年7月6日召开的第123届国际奥委会全会上被选定为2018年冬季奥运会的主办地。由此,韩国自1988年举办首尔夏季奥运会以后,时隔30年,将首次举办冬季奥运会。该届冬奥会的开·闭幕式以及大部分的雪上运动将在平昌进行,而所有冰上运动将在江陵、高山滑雪滑降比赛则将在旌善进行。"
}
=>
{"tokens": [{"token": "第","start_offset": 0,"end_offset": 1,"type": "word","position": 0},{"token": "23","start_offset": 1,"end_offset": 3,"type": "word","position": 1},{"token": "届","start_offset": 3,"end_offset": 4,"type": "word","position": 2},{"token": "冬季","start_offset": 4,"end_offset": 6,"type": "word","position": 3},{"token": "奥运会","start_offset": 6,"end_offset": 9,"type": "word","position": 4},
...

您现在可以看到组成词语的各个汉字仍在一起,并未被继续分解。

现在,我们就可以分析韩文、日文和中文文本了。 让我给您演示一下如何针对韩语、日语和中文文本进行索引和查询,详见如何使用 Elasticsearch 6.2 搜索中文、日文和韩文文本 - 第 2 部分: 多字段。

Elasticsearch:如何使用 Elasticsearch 6.2 搜索中文、日文和韩文文本 - 第 1 部分: 分析工具相关推荐

  1. 【Elasticsearch】如何使用 Elasticsearch 6.2 搜索中文、日文和韩文文本 - 第 2 部分: 多字段

    1.概述 翻译:https://www.elastic.co/cn/blog/how-to-search-ch-jp-kr-part-2 如何使用 Elasticsearch 6.2 搜索中文.日文和 ...

  2. 【Elasticsearch】如何使用 Elasticsearch 6.2 搜索中文、日文和韩文文本 - 第 1 部分: 分析工具

    1.概述 翻译:https://www.elastic.co/cn/blog/how-to-search-ch-jp-kr-part-1 共有 92 个国家和地区的代表队参加了去年的平昌冬奥会. 共有 ...

  3. [转] 判断中文,日文(日语),韩文(韩语)的正则表达式

    原文出处: [url]http://blog.csdn.net/a9529lty/article/details/2680007[/url] 经测试,中文和日语的正则还是挺准的. 1. GBK (GB ...

  4. 【Elasticsearch】如何使用 Elasticsearch 6.2 搜索中文、日语和韩语文本 - 第 3 部分:语言检测工具

    1.概述 翻译:https://www.elastic.co/cn/blog/how-to-search-ch-jp-kr-part-3 这是我有关中文.日语和韩语文本搜索的系列文章的第 3 部分.如 ...

  5. elasticsearch通过logstash同步mysql数据(中文分词)

    Elasticsearch 目录 概述 索引(Index) 类型(Type) 文档(Document) 倒排索引(Inverted Index) 节点(Node) 安装 启动 DSL(查询语句) 官方 ...

  6. Elasticsearch:在 Elasticsearch 中使用语言识别进行多语言搜索

    我们很高兴地宣布,随着机器学习推理摄入处理器 (inference ingest processor)的发布,我们还将在 Elasticsearch 7.6 中发布语言识别. 在此发行版中,我们希望借 ...

  7. 了解学习 Elasticsearch 及其与 Python 实现全文搜索

    Elasticsearch简介 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用 ...

  8. Elasticsearch初步学习(仿京东搜索、爬虫)

    个人博客欢迎访问 微信搜索程序dunk,关注公众号,获取项目.博客源码 我们面前无所不有,我们面前一无所有 --查尔斯·狄更斯 序号 内容 1 Java基础面试题 2 JVM面试题 3 Java并发编 ...

  9. 【Elasticsearch】使用Elasticsearch中的copy_to来提高搜索效率

    1.概述 转载:使用Elasticsearch中的copy_to来提高搜索效率 在今天的这个教程中,我们来着重讲解一下如何使用Elasticsearch中的copy来提高搜索的效率.比如在我们的搜索中 ...

最新文章

  1. 2022-2028年中国婴儿用品市场投资分析及前景预测报告
  2. linux过滤脚本中的字段,Shell脚本中常用的文本过滤命令
  3. 多线程:Vector是线程安全的吗
  4. RTX5 | STM32H743+CubeMX+RTX5+两路FDCAN模板
  5. 小学生们在B站讲算法,这么内卷么?
  6. python opencv 学习笔记
  7. 数据库服务器位置,怎么查看服务器数据库的位置
  8. 《深入浅出WPF》——命令学习
  9. 数学建模 CUMCM2018年A题真题(本文由西南民族大学白白不加糖、薄荷CC糖原创)
  10. SOUI知识点小结2
  11. mysql什么时候产生临时表_什么时候会用到临时表?MySQL临时表的使用总结
  12. UWA DAY 2021 精彩盘点 | 35场技术议题掀起的思维浪潮
  13. 补间动画tween.js
  14. Weighted Boxes Fusion 源码解析
  15. vo、qo、bo在spring中的位置
  16. 数据挖掘之用户价值分析
  17. 华为手机锁屏下拉怎么设置_华为手机怎么设置会滚动的锁屏文字?设置步骤超简单,一看就会...
  18. [BZOJ4327] JSOI2012玄武密码
  19. 机器学习领域 几种距离度量方法【3】
  20. dsa签名 linux_openssl使用DSA算法生成签名

热门文章

  1. Unity给图片添加点击事件
  2. 在线查看office文件的两种方法word、excel、ppt文件
  3. 啊这!你们有听说过“程序员鼓励师”这个职业嘛?是我 孤陋寡闻了?
  4. cnc难还是java难_英语八级难考过吗?大概要学多久?
  5. java计算机毕业设计高校多媒体设备运维管理系统服务端(附源码、数据库)
  6. 思林杰科技通过注册:应收账款余额1.87亿 占营收比例160%
  7. pycharm学生认证
  8. 西南大学计算机基础和数字电路,西南大学计算机基础和数字电路907复 习笔记.pdf...
  9. 【观察】智能运维从拓荒走向深耕,云智慧领跑的升势和胜势
  10. 计算机专业硬件,什么是计算机硬件?