1,匹配查询(match)

  • match查询主要的应用场景是进行全文搜索;
// 1,初始化数据
DELETE /my_index PUT /my_index
{ "settings": { "number_of_shards": 1 }} POST /my_index/my_type/_bulk
{ "index": { "_id": 1 }}
{ "title": "The quick brown fox" }
{ "index": { "_id": 2 }}
{ "title": "The quick brown fox jumps over the lazy dog" }
{ "index": { "_id": 3 }}
{ "title": "The quick brown fox jumps over the quick dog" }
{ "index": { "_id": 4 }}
{ "title": "Brown fox brown dog" } // 2,match 单个词查询
GET /my_index/my_type/_search
{
"query":{
"match":{
"title":"QUICK!"
}
}
} // 3,match 多词查询
GET /my_index/my_type/_search
{
"query":{
"match":{
"title":"BROWN DOG!"
}
}
} // 3.1 operator 操作符,默认值为or
GET /my_index/my_type/_search
{
"query":{
"match":{
"title":{
"query":"BROWN DOG!",
"operator":"and" }
}
}
} // 3.2 minimum_should_match 最小匹配参数
GET /my_index/my_type/_search
{
"query":{
"match":{
"title":{
"query":"quick brown dog",
"minimum_should_match": "75%" }
}
}
}

2,组合查询

// 组合查询
GET /my_index/my_type/_search
{
"query":{
"bool":{
"must":{"match":{"title":"quick"}},
"must_not":{"match":{"title":"lazy"}},
"should":[
{"match":{"title":"brown"}},
{"match":{"title":"dog"}}
]
}
}
} // 备注:should语句,一个文档不必包含“brown”或“dog”这两个词项,但如果一旦包含,它的相关性会提高。 // 控制精度(minimum_should_match)
GET /my_index/my_type/_search
{
"query":{
"bool":{
"should":[
{"match":{"title":"brown"}},
{"match":{"title":"fox"}},
{"match":{"title":"dog"}}
],
"minimum_should_match": 2
}
}
}

3,查询语句提升权重

// boost 控制查询语句的相对权重,默认值为1,大于1会提升一个语句的相对权重
GET /_search
{
"query": {
"bool": {
"must": {
"match": {
"content": {
"query": "full text search",
"operator": "and"
}
}
},
"should": [
{ "match": {
"content": {
"query": "Elasticsearch",
"boost": 3
}
}},
{ "match": {
"content": {
"query": "Lucene",
"boost": 2
}
}}
]
}
}
}

4,控制分析

// 1,新增字段,并配置分析器
PUT /my_index/_mapping/my_type
{
"my_type": {
"properties": {
"english_title": {
"type": "text",
"analyzer": "english"
}
}
}
} // 2,validate-query API 分析查询过程
GET /my_index/my_type/_validate/query?explain
{
"query":{
"bool":{
"should":[
{"match":{"title":"Foxes"}},
{"match":{"english_title": "Foxes"}}
]
}
}
}

参考资料:

-FORBIDDEN 12 index read-only allow delete (api)

-全文检索

Elasticsearch 全文搜索的更多相关文章

  1. Elasticsearch全文搜索——adout

    现在尝试下稍微高级点儿的全文搜索——一项传统数据库确实很难搞定的任务. 搜索下所有喜欢攀岩(rock climbing)的雇员: curl -XGET 'localhost:9200/megacorp ...

  2. [Elasticsearch] 全文搜索 (一) 基础概念和match查询

    全文搜索(Full Text Search) 现在我们已经讨论了搜索结构化数据的一些简单用例,是时候开始探索全文搜索了 - 如何在全文字段中搜索来找到最相关的文档. 对于全文搜索而言,最重要的两个方面 ...

  3. Elasticsearch 全文搜索和keyword search字段的mapping定义

    在ES5.0之前我们对于需要keyword search的字段都是这样定义的: { "field name":{ "type": "string&qu ...

  4. elasticsearch全文搜索

    1.创建索引 PUT 192.168.100.102:9200/news 2.创建mapping POST 192.168.100.102:9200/news/new/_mapping { " ...

  5. ElasticSearch全文搜索引擎(A)

    文章:[Elasticsearch] 全文搜索 (一) - 基础概念和match查询 全文检索,是从最初的字符串匹配和简单的布尔逻辑检索技术,演进到能对超大文本.语音.图像.活动影像等非结构化数据进行 ...

  6. 全文搜索之 Elasticsearch

    概述 Elasticsearch (ES)是一个基于 Lucene 的开源搜索引擎,它不但稳定.可靠.快速,而且也具有良好的水平扩展能力,是专门为分布式环境设计的. 特性 安装方便:没有其他依赖,下载 ...

  7. 在 Laravel 项目中使用 Elasticsearch 做引擎,scout 全文搜索(小白出品, 绝对白话)

    项目中需要搜索, 所以从零开始学习大家都在用的搜索神器 elasiticsearch. 刚开始 google 的时候, 搜到好多经验贴和视频(中文的, 英文的), 但是由于是第一次接触, 一点概念都没 ...

  8. 使用ElasticSearch服务从MySQL同步数据实现搜索即时提示与全文搜索功能

    最近用了几天时间为公司项目集成了全文搜索引擎,项目初步目标是用于搜索框的即时提示.数据需要从MySQL中同步过来,因为数据不小,因此需要考虑初次同步后进行持续的增量同步.这里用到的开源服务就是Elas ...

  9. ASP.NET Web API + Elasticsearch 6.x 快速做个全文搜索

    最近想做个全文搜索,设想用 ASP.NET Web API + Elasticsearch 6.x 来实现. 网上搜了下 Elasticsearch 的资料,大部分是讲 linux 平台下如何用 ja ...

随机推荐

  1. (29)打鸡儿教你Vue.js

    web阅读器开发 epub格式的解析原理 Vue.js+epub.js实现一个简单的阅读器 实现阅读器的基础功能 字号选择,背景颜色 有上一页,下一页的功能 设置字号,切换主题,进度按钮 电子书目录 ...

  2. mysql 统计查询出来的数目

    select count(*) as dd from users;

  3. Android中显式意图和隐式意图的区别

    1.显式意图 可以直接通过名称开启指定的目标组件: 通过构造方法Intent(Context packageContext,class<?>cls)来实现. button_1 = (But ...

  4. Hadoop(一)—— 启动与基本使用

    一.安装&启动 安装 下载hadoop2.7.2 https://archive.apache.org/dist/hadoop/common/hadoop-2.7.2/ 2.7.2-官方文档 ...

  5. 北漂IT男返乡2年的三线楼市观察(宜昌夷陵篇)-原创

    一直想写点什么,这段时间总算有空,好嘞,正好有兴致来写一写楼市相关的文章以饕读者和粉丝朋友. 宜昌?说宜昌您可能不知道,但是说三峡大坝您就知道了 最近这两年,因为小宝的降临,我多半时间待在老家宜昌陪伴 ...

  6. Shell脚本——make命令和Makefile文件【转】

    https://blog.csdn.net/twc829/article/details/72729799 make命令是一个常用的编译命令,尤其在C/C++开发中,make命令通过makefile文 ...

  7. 启动项目报错:Unsupported major.minor version 52.0

    解决方案: 确保Build Path或者电脑配置的环境变量版本号,和pom中的一致 Exception in thread "main" java.lang.Unsupported ...

  8. Microservices in action: java(spring) and .net

    Manning | Homehttps://www.manning.com/ What is a Microservice? | Manninghttps://freecontent.manning. ...

  9. Qt编写气体安全管理系统23-类型设置

    一.前言 类型设置这个功能模块大大拓展了整个系统的灵活性,将整个系统中所有用到的控制器型号.探测器数量.探测器型号.气体种类.气体符号都存储到数据库表中,用户在类型设置中可以自由添加删除和修改,这样后 ...

  10. nginx调优(一)

    (1).隐藏nginx版本号 隐藏版本号可以有效避免黑客根据nginx版本信息,查找对应漏洞进行攻击. 下载nginx源码包(http://nginx.org/en/download.html)并上传 ...