es搜索优化
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"
}
es搜索优化的更多相关文章
- 一次 ElasticSearch 搜索优化
一次 ElasticSearch 搜索优化 1. 环境 ES6.3.2,索引名称 user_v1,5个主分片,每个分片一个副本.分片基本都在11GB左右,GET _cat/shards/user 一共 ...
- 【随笔】Android应用市场搜索优化(ASO)
参考了几篇网上的关于Android应用市场搜索优化(ASO)的分析,总结几点如下: 优化关键字:举例目前美团酒店在各Android市场上的关键字有“美团酒店.钟点房.团购.7天”等等,而酒店类竞对在“ ...
- 针对TianvCms的搜索优化文章源码(无版权, 随便用)
介绍: 搜索优化虽然不是什么高深的技术, 真正实施起来却很繁琐, 后台集成搜索优化的文章可以便于便于管理, 也让新手更明白优化的步奏以及优化的日常. 特点: 根据自己的经验和查阅各种资料整理而成, 相 ...
- seo搜索优化教程09 - seo搜索优化外链优化
为了使大家更方便的了解及学习网络营销推广.seo搜索优化,星辉科技强势推出seo搜索优化教程.此为seo教程第九课 网络营销推广中有句行话,叫做"内容为王,外链为王",可见外链对于 ...
- seo搜索优化教程10-黑帽SEO
为了使大家更方便的了解及学习网络营销推广.seo搜索优化,星辉科技强势推出seo搜索优化教程.此为seo教程第十课 学习黑帽SEO并不是教大家如何作弊,而是想让大家避免使用黑帽SEO手法,从而导致被搜 ...
- seo搜索优化教程11-seo搜索优化关键词策略
为了使大家更方便的了解及学习网络营销推广.seo搜索优化,星辉科技强势推出seo搜索优化教程.此为seo教程第11课 关键词在seo搜索优化中有着重要的地位,本节主要讲解seo搜索优化中关键词优化的相 ...
- seo搜索优化教程12-网站SEO诊断
为了使大家更方便的了解及学习网络营销推广.seo搜索优化,星辉信息科技强势推出seo搜索优化教程.此为seo教程第12课 行业分析 在搜索引擎中检索自己的站点,在检索结果及相关网站中分析自己在行业内的 ...
- seo搜索优化教程13-SEO搜索引擎站点收录
为了使大家更方便的了解及学习网络营销推广.seo搜索优化,星辉科技强势推出seo搜索优化教程.此为seo教程第13课 想要用户能够在搜索引擎中通过关键词搜索到您的页面信息,首先要做的是让搜索引擎收录您 ...
- seo搜索优化教程14-seo搜索优化实战
为了使大家更方便的了解及学习网络营销推广.seo搜索优化,星辉信息科技强势推出seo搜索优化教程.此为seo教程第14课 根据前面学习的seo搜索优化内容,星辉科技进行总结性的分析,形成一份标准的se ...
- seo搜索优化技巧01-seo外链怎么发?
在seo搜索优化中,seo外链的作用并没有早期的作用大了.可是高质量的外链对关键词的排名还是很重要的.星辉信息科技对seo外链怎么发以及seo外链建设中的注意点进行阐述. SEO外链如何做 SEO高质 ...
随机推荐
- 【Unity3D】Photon环境搭建
1 简介 Photon 是一个泛用性的 ScoketServer 套装软件,可用于多人在线游戏.聊天室.大厅游戏,并同时支持 Windows.Unity3D.iOS.Android.Flash 等 ...
- Java集合框架学习(七) Vector详解
Vector介绍 Vector 实现了List接口.和ArrayList一样也维护元素的插入顺序. 但它一般只用在多线程环境,因为它是线程同步的. 还有就是它对元素的增删改查效率低下. 类定义 pub ...
- 【Android逆向】脱壳项目frida_dump 原理分析
脱dex核心文件dump_dex.js 核心函数 function dump_dex() { var libart = Process.findModuleByName("libart.so ...
- django学习第六天---shell指令,单表基于双下划线的模糊查询,distinct注意点,字段的choices属性,url反向解析,orm多表操作创建表
shell指令 命令 python manage.py shell 在Terminal,执行上面这个指令会进入到python解释器环境中,并且加载了我们当前django项目配置环境,所以可以在当前sh ...
- 【NLP学习其3.5】词嵌入的特性,为什么词之间会有联系?
词嵌入的特性 现在你有了一堆嵌入向量,我们可以开始学习他们之间的特性了 前情提要:https://www.cnblogs.com/DAYceng/p/14962528.html 先把各向量重新命名便于 ...
- Java 小练习(3) 方法的修改+ 调用
1 package com.bytezero.exer; 2 3 public class ExerTest 4 { 5 public static void main(String[] args) ...
- 当未指定且存在多个构造器,实例化对象时Spring如何选择?
前言 在前面的讲解中,我们了解了如何获取构造器.当只有一个符合条件的构造器时,自然会选择它作为初始化的构造器.然而,在上一节中,我们遇到了一种特殊情况:当有多个符合条件的构造器时,返回的是一个数组.在 ...
- tomcat 安装笔记 20230901
war位置 /usr/local/tomcat8_1/webapps/ tomcat位置 71.170 /usr/local/tomcat8_1/ 给了点工具包 位置 /usr/local/tool/ ...
- 日常办公——Word中重复标题的设置
在Word中,遇到表格分页时,可以设置重复标题,如下图所示:
- PlayBook 详解
4)Playbook 4.1)Playbook 介绍 PlayBook 与 ad-hoc 相比,是一种完全不同的运用 Ansible 的方式,类似与 Saltstack 的 state 状态文件.ad ...