1、V1版本:仅做了分词的查询,使用ik分词器ik_max_word

POST /t_sku/_search
{
"size": 10,
"query": {
"bool": {
"match": {
"spu_name": "陕西米脂"
}
}
},
"_source": "spu_name"
}

2、V2版本:

(1)优化后支持前缀搜索,配合权重控制

(2)优化短语查询:phrase查询,查询时可以将短语中词语看成一个整体,本质就是相对位置固定,不像分词的拆分,配合权重,返回结果更靠前,更精准

POST /t_sku/_search
{
"size": 10,
"query": {
"bool": {
"should": [
{
"prefix": {
"spu_name.keyword": {
"value": "陕西米脂",
"boost": 5
}
}
},
{
"match_phrase_prefix": {
"spu_name": {
"query": "陕西米脂",
"boost": 2
}
}
},
{
"match": {
"spu_name": "陕西米脂"
}
}
]
}
},
"_source": "spu_name"
}

V3版本:
扩展match查询能力,支持模糊搜索(添加fuzziness 相关参数从而支持 Fuzzy 模糊匹配)

POST /t_sku/_search
{
"size": 10,
"query": {
"bool": {
"should": [
{
"prefix": {
"spu_name.keyword": {
"value": "陕西眉县",
"boost": 5
}
}
},
{
"match_phrase_prefix": {
"spu_name": {
"query": "陕西眉县",
"boost": 2
}
}
},
{
"match": {
"spu_name": {
"query": "陕西眉县",
"fuzziness": "AUTO",
"max_expansions": 10,
"prefix_length": 2,
"fuzzy_transpositions": true
}
}
}
]
}
},
"_source": "spu_name"
}

V4版本:

查询能力扩展:加上一个 Query String 查询,具备支持通配符和多种查询语法的能力

注意:

因为query_string对任何无效的语法都会返回一个错误,所以我们不建议在搜索框中使用query_string查询。

如果你不需要支持查询语法,可以考虑使用匹配查询。如果你需要查询语法的功能,请使用simple_query_string查询,它没有那么严格。因为它对任何无效的语法都会返回错误,我们不建议在搜索框中使用query_string查询。

如果你不需要支持查询语法,可以考虑使用匹配查询。如果你需要查询语法的功能,请使用simple_query_string查询,它不太严格。
POST /t_sku/_search
{
"size": 10,
"query": {
"bool": {
"should": [
{
"prefix": {
"spu_name.keyword": {
"value": "陕西眉县",
"boost": 5
}
}
},
{
"match_phrase_prefix": {
"spu_name": {
"query": "陕西眉县",
"boost": 2
}
}
},
{
"match": {
"spu_name": {
"query": "陕西眉县",
"fuzziness": "AUTO",
"max_expansions": 10,
"prefix_length": 2,
"fuzzy_transpositions": true
}
}
},
{
"query_string": {
"fields": [
"spu_name",
"spu_name.keyword"
],
"query": "陕西眉县",
"fuzziness": "AUTO",
"fuzzy_prefix_length": 2,
"fuzzy_max_expansions": 10,
"fuzzy_transpositions": true,
"allow_leading_wildcard": false
}
}
]
}
},
"_source": "spu_name"
}

参考1
参考2参考3官方文档

es搜索优化的更多相关文章

  1. 一次 ElasticSearch 搜索优化

    一次 ElasticSearch 搜索优化 1. 环境 ES6.3.2,索引名称 user_v1,5个主分片,每个分片一个副本.分片基本都在11GB左右,GET _cat/shards/user 一共 ...

  2. 【随笔】Android应用市场搜索优化(ASO)

    参考了几篇网上的关于Android应用市场搜索优化(ASO)的分析,总结几点如下: 优化关键字:举例目前美团酒店在各Android市场上的关键字有“美团酒店.钟点房.团购.7天”等等,而酒店类竞对在“ ...

  3. 针对TianvCms的搜索优化文章源码(无版权, 随便用)

    介绍: 搜索优化虽然不是什么高深的技术, 真正实施起来却很繁琐, 后台集成搜索优化的文章可以便于便于管理, 也让新手更明白优化的步奏以及优化的日常. 特点: 根据自己的经验和查阅各种资料整理而成, 相 ...

  4. seo搜索优化教程09 - seo搜索优化外链优化

    为了使大家更方便的了解及学习网络营销推广.seo搜索优化,星辉科技强势推出seo搜索优化教程.此为seo教程第九课 网络营销推广中有句行话,叫做"内容为王,外链为王",可见外链对于 ...

  5. seo搜索优化教程10-黑帽SEO

    为了使大家更方便的了解及学习网络营销推广.seo搜索优化,星辉科技强势推出seo搜索优化教程.此为seo教程第十课 学习黑帽SEO并不是教大家如何作弊,而是想让大家避免使用黑帽SEO手法,从而导致被搜 ...

  6. seo搜索优化教程11-seo搜索优化关键词策略

    为了使大家更方便的了解及学习网络营销推广.seo搜索优化,星辉科技强势推出seo搜索优化教程.此为seo教程第11课 关键词在seo搜索优化中有着重要的地位,本节主要讲解seo搜索优化中关键词优化的相 ...

  7. seo搜索优化教程12-网站SEO诊断

    为了使大家更方便的了解及学习网络营销推广.seo搜索优化,星辉信息科技强势推出seo搜索优化教程.此为seo教程第12课 行业分析 在搜索引擎中检索自己的站点,在检索结果及相关网站中分析自己在行业内的 ...

  8. seo搜索优化教程13-SEO搜索引擎站点收录

    为了使大家更方便的了解及学习网络营销推广.seo搜索优化,星辉科技强势推出seo搜索优化教程.此为seo教程第13课 想要用户能够在搜索引擎中通过关键词搜索到您的页面信息,首先要做的是让搜索引擎收录您 ...

  9. seo搜索优化教程14-seo搜索优化实战

    为了使大家更方便的了解及学习网络营销推广.seo搜索优化,星辉信息科技强势推出seo搜索优化教程.此为seo教程第14课 根据前面学习的seo搜索优化内容,星辉科技进行总结性的分析,形成一份标准的se ...

  10. seo搜索优化技巧01-seo外链怎么发?

    在seo搜索优化中,seo外链的作用并没有早期的作用大了.可是高质量的外链对关键词的排名还是很重要的.星辉信息科技对seo外链怎么发以及seo外链建设中的注意点进行阐述. SEO外链如何做 SEO高质 ...

随机推荐

  1. WPF常用控件 自定义样式( ScrollViewer TextBox PasswordBox Button RadioButton CheckBox ToggleButton ProgressBar TabControl Loading Waiting 饼图 渐变图标 消息通知 )

    控件样式一览: ScrollViewer 继承样式,使用方法跟原生一致,就不过多阐述. TextBox,PasswordBox 继承样式,Tag属性为提示文字. RadioButton,CheckBo ...

  2. Python——检测Popen返回的stdOutMsg中是否是否包含指定字符,并提取指定位置的信息

    问题背景: Python 中经常会需要通过subprocess.PoPen函数下发Shell Command,与操作系统进行交互.一些情况下,还需要分析shell command的返回值,提取有用信息 ...

  3. haproxy ssl证书配置

    通常情况下,web应用程序的ssl证书放置于nginx的服务器,但很多时候前面会加一次负载均衡,使用HAProxy可以实现https的证书安全,从客户浏览器到HAProxy代理服务器之间为ssl加密传 ...

  4. java 基础常见(上)

    title category tag head Java基础常见面试题总结(上) Java Java基础 keywords JVM,JDK,JRE,字节码详解,Java 基本数据类型,装箱和拆箱 de ...

  5. CentOS8安装Geant4笔记(二):CentOS8安装Qt5.15.2并测试运行环境

    前言   在服务器CentOs8.2上安装geant4软件,但是运行不起来,所以本节开始主要是安装qt,测试qt基本功能.   要点   添加qt环境到系统环境中,是geant4启动qt的必要条件. ...

  6. 使用俩个链接在一起的容器运行wordpress

    # 问题,如何分离mysql和wordpress,使它们每个都单独运行一个容器. # 解决办法:运行时通过--link选项使它们链接在一起 --link <container_name>: ...

  7. 【webserver 前置知识 03】Linux网络编程入门其二,I/O多路复用

    I/O多路复用 I/O多路复用使得程序能够同时监听多个文件描述符 LInux下实现I/O多路复用的系统调用主要由select.poll以及epoll(常问,要会自己写出来) 例子 阻塞等待 阻塞等待可 ...

  8. 【Azure 应用服务】应用代码中需要使用客户端证书访问服务接口,部署在应用服务后报错不能找到证书(Cannot find the X.509 certificate)

    问题描述 在应用中,需要访问另一个服务接口,这个接口需要使用客户端证书进行认证.在代码中使用 System.Security.Cryptography.X509Certificates 加载Windo ...

  9. 【Azure 应用程序见解】通过无代码方式在App Service中启用Application Insights后,如何修改在Application Insights中显示的App Service实例名呢?

    问题描述 在App Service中,可以非常容易的启动Application Insights服务.默认情况中,在Application Insights中查看信息时候,其中的对象名称默认为App ...

  10. mysql-对应删除 dict 脚本

    -- 1. 此 dict 是在不同租户下的数据字典,查询时需要根据 departid 进行分类查询 -- 2. 删除dict, dict分类主表类型与挂载的子表数据 -- 3. 通过查询到的主表的 g ...