首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
es prefix 分词
2024-10-22
ES 21 - Elasticsearch的高级检索语法 (包括term、prefix、wildcard、fuzzy、boost等)
目录 1 term query - 索引词检索 1.1 term query - 不分词检索 1.2 terms query - in检索 2 prefix query - 前缀检索 3 wildcard query - 通配符检索 4 regexp query - 正则检索 5 fuzzy query - 纠错检索 6 boost评分权重 - 控制文档的优先级别 7 dis_max的用法 - best fields策略 7.1 dis_max的提出 7.2 使用示例 8 exist query
[ES]elasticsearch章5 ES的分词(二)
Elasticsearch 中文搜索时遇到几个问题: 当搜索关键词如:“人民币”时,如果分词将“人民币”分成“人”,“民”,“币”三个单字,那么搜索该关键词会匹配到很多包含该单字的无关内容,但是如果将该词分词成一个整词“人民币”,搜索单字如“人”字又不会匹配到包含“人民币”关键词的内容,怎么解决这个问题,既保证覆盖度又保证准确度? 搜索“RMB”时只会匹配到包含“RMB”关键词的内容,实际上,“RMB”和“人民币”是同义词,我们希望用户搜索“RMB”和“人民币”可以相互匹配,ES同义词怎么配置?
[ES]elasticsearch章5 ES的分词(一)
初次接触 Elasticsearch 的同学经常会遇到分词相关的难题,比如如下这些场景: 1.为什么明明有包含搜索关键词的文档,但结果里面就没有相关文档呢? 2.我存进去的文档到底被分成哪些词(term)了? 3.我自定义分词规则,但感觉好麻烦呢,无从下手 1.从一个实例出发,如下创建一个文档: 然后我们做一个查询,我们试图通过搜索 eat 这个关键词来搜索这个文档 ES的返回结果为0.这不太对啊,我们用最基本的字符串查找也应该能匹配到上面新建的文档才对啊! 先来看看什么是分词. 2. 分词 搜
ES中文分词器之精确短语匹配(解决了match_phrase匹配不全的问题)
分词器选择 调研了几种分词器,例如IK分词器,ansj分词器,mmseg分词器,发现IK的分词效果最好.举个例子: 词:<<是的>><span>哈<\span>撒多撒ئۇيغۇر تىلى王者荣耀sdsd@4342啊啊啊 Standard: 是,的,span,哈,span,撒,多,撒,ئۇيغۇر,تىلى,王,者,荣,耀,sdsd,4342,啊,啊,啊,啊 mmseg_maxword:是,的,span,哈,span,撒,多,撒,ئ,ۇ,ي,غ,ۇ,ر,ت,
Elasticsearch(ES)分词器的那些事儿
1. 概述 分词器是Elasticsearch中很重要的一个组件,用来将一段文本分析成一个一个的词,Elasticsearch再根据这些词去做倒排索引. 今天我们就来聊聊分词器的相关知识. 2. 内置分词器 2.1 概述 Elasticsearch 中内置了一些分词器,这些分词器只能对英文进行分词处理,无法将中文的词识别出来. 2.2 内置分词器介绍 standard:标准分词器,是Elasticsearch中默认的分词器,可以拆分英文单词,大写字母统一转换成小写. simple:按非字母的字符
ES 中文分词
一.大名鼎鼎的中文插件IK的安装配置 1. 在插件目录中建立IK的目录 mkdir $ES_HOME/plugins/analysis-ik 2. 下载IK 的类库jar 文件到IK目录 cd $ES_HOME/plugins/analysis-ik wget https://github.com/medcl/elasticsearch-rtf/blob/master/plugins/analysis-ik/elasticsearch-analysis-ik-1.2.6.jar 3. 放置数据字
es ik分词插件安装
1.ik下载(下载es对应版本的ik分词包) https://github.com/medcl/elasticsearch-analysis-ik/releases 2.mac cd /usr/local/Cellar/elasticsearch/6.6.1/libexec/plugins mkdir ik 将下载的包解压到ik目录下 3.重启es 测试 postman
es的分词器analyzer
analyzer 分词器使用的两个情形: 1,Index time analysis. 创建或者更新文档时,会对文档进行分词2,Search time analysis. 查询时,对查询语句分词 指定查询时使用哪个分词器的方式有: - 查询时通过analyzer指定分词器 GET test_index/_search { "query": { "match": { "name": { "query": "l
es之分词器和分析器
Elasticsearch这种全文搜索引擎,会用某种算法对建立的文档进行分析,从文档中提取出有效信息(Token) 对于es来说,有内置的分析器(Analyzer)和分词器(Tokenizer) 1:分析器 ES内置分析器 standard 分析器划分文本是通过词语来界定的,由Unicode文本分割算法定义.它删除大多数标点符号,将词语转换为小写(就是按照空格进行分词) simple 分析器每当遇到不是字母的字符时,将文本分割为词语.它将所有词语转换为小写. keyword 可以接受任何给定的文
ES中文分词器安装以及自定义配置
之前我们创建索引,查询数据,都是使用的默认的分词器,分词效果不太理想,会把text的字段分成一个一个汉字,然后搜索的时候也会把搜索的句子进行分词,所以这里就需要更加智能的分词器IK分词器了. ik分词器的下载和安装,测试 第一: 下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases ,这里你需要根据你的Es的版本来下载对应版本的IK,这里我使用的是6.8.10的ES,所以就下载ik-6.8.10.zip的文件. 解压--
ES ik分词器使用技巧
match查询会将查询词分词,然后对分词的结果进行term查询. 然后默认是将每个分词term查询之后的结果求交集,所以只要分词的结果能够命中,某条数据就可以被查询出来,而分词是在新建索引时指定的,只有text类型的数据才能设置分词策略. 新建索引,并指定分词策略: PUT mail_test3 { "settings": { "index": { "refresh_interval": "30s", "number
es ik 分词 5.x后,设置默认分词
1.使用模板方式,设置默认分词 注: 设置模板,需要重新导入数据,才生效 通过模板设置全局默认分词器 curl -XDELETE http://localhost:9200/_template/rtf curl -XPUT http://localhost:9200/ _template/rtf -d' { "template": "*", "settings": { "number_of_shards": 1 }, &quo
es string 分词完整示例
"products_name_en": { "type": "string", //字符串类型 "index": "analyzed"//分词,不分词是:not_analyzed ,设置成no,字段将不会被索引 "analyzer":"ik"//指定分词器 "boost
es 查询分词字段为空的数据
{ "query": { "bool" : { "filter" : { "script" : { "script" : { "inline": "params._source.text_content==''" , "lang": "painless" } } } } } }
【漫画】ES原理 必知必会的倒排索引和分词
倒排索引的初衷 倒排索引,它也是索引.索引,初衷都是为了快速检索到你要的数据. 我相信你一定知道mysql的索引,如果对某一个字段加了索引,一般来说查询该字段速度是可以有显著的提升. 每种数据库都有自己要解决的问题(或者说擅长的领域),对应的就有自己的数据结构,而不同的使用场景和数据结构,需要用不同的索引,才能起到最大化加快查询的目的. 对 Mysql 来说,是 B+ 树,对 Elasticsearch/Lucene 来说,是倒排索引. 倒排索引是什么 刚刚胖滚猪说到图书的例子,目录和索引页,其
【ELK】4.spring boot 2.X集成ES spring-data-ES 进行CRUD操作 完整版+kibana管理ES的index操作
spring boot 2.X集成ES 进行CRUD操作 完整版 内容包括: ========================================================================================= 1.CRUD:单字段查询.复合查询.分页查询.评分查询√ 2.时间范围查询√ 3.GET方法传入时间类型解析不了的问题√ 4.term和match查询的区别√ 5.filter+query查询的区别√ 6.自定义ES的mapping,自定义
ElasticSearch ik分词安装
1.下载对应版本的ES ik分词 https://github.com/medcl/elasticsearch-analysis-ik/releases 2.解压elasticsearch-analysis-ik-master.zip unzip elasticsearch-analysis-ik-master.zip 3.进入elasticsearch-analysis-ik-master,编译源码 cd elasticsearch-analysis-ik-master mvn clean
ES match match_phrase term willcard的查询原理
比如:要求实现SQL中like “%xxxx%”的匹配效果. wildcard通配 这种效果在ES中最匹配的做法是用wildcard query通配,这种情况不会对query分词,而是直接遍历倒排索引逐个匹配计算,性能是无法想象的,大家慎用. match全文匹配 效果最差的做法是用match全文检索,这种情况只要query分词的任何一个term出现在倒排中,就会召回文档,所以很容易搜出一些八竿子打不着的文档. term匹配 如果你的搜索词本身不需要分词,只是一个term的话,那么直接走term
es 基于match_phrase的模糊匹配原理及使用
[版权声明]:本文章由danvid发布于http://danvid.cnblogs.com/,如需转载或部分使用请注明出处 在业务中经常会遇到类似数据库的"like"的模糊匹配需求,而es基于分词的全文检索也是有类似的功能,这个就是短语匹配match_phrase,但往往业务需求都不是那么简单,他想要有like的功能,又要允许有一定的容错(就是我搜索"东方宾馆"时,"广州花园宾馆酒店"也要出来,这个就不是单纯的"like"),
【ES】match_phrase与regexp
刚开始接触es,由于弄不清楚match_phrase和regexp导致很多查询结果与预想的不同.在这整理一下. regexp:针对的是单个词项 match_phrase:针对的是多个词项的相对位置 它们的查询结果跟分析器分词的方式有很大关系. 比如,我有两个字符串"HELLO-world" 和 "hello.WORLD",字段名称是title. 针对"HELLO-world",看下面两个语句.第二个是可以匹配的,第一个不可以. { "r
ES查询之刨根问底
昨天有一个需求,就是想要根据某个网关url做过滤,获取其下面所有的上下文nginx日志:如果直接"query":"https://XXX/YYY/ZZZ"发现有问题,啥也查不出来,后来仁杰指出来需要使用“”括起来,果然这样就变成了前后匹配的模糊查询了.但是继续,我发现如果我指定了字段"query":"request:\"http://XXX/YYY/ZZZ\""就啥也返回不了了:但是如果是换位message
热门专题
mvc项目中实现Markdown编辑器的使用
ntfs格式的移动硬盘在mac上能写入吗
微信小程序 css 动画做底部模态框
组合数输入两个整数m和n计算
nodejs mysql 偶尔timeout
Simulink Test工具箱
openConnection()拒绝连接
abp vnext 数据库管理
oracle 导入 hbase
js把对象转化为数组
MIT App Inventor离线
linux 硬盘安装
thinkphp 自动生成模型
Qcombox传递参数
ANDROID 弹出式菜单
c string获取行数
js 对象结构赋值 变量
jsp怎么实现图片旋转功能
影视中token怎么输入
mysql数据库增删改查