Elasticsearch 全文搜索
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 全文搜索的更多相关文章
- Elasticsearch全文搜索——adout
现在尝试下稍微高级点儿的全文搜索——一项传统数据库确实很难搞定的任务. 搜索下所有喜欢攀岩(rock climbing)的雇员: curl -XGET 'localhost:9200/megacorp ...
- [Elasticsearch] 全文搜索 (一) 基础概念和match查询
全文搜索(Full Text Search) 现在我们已经讨论了搜索结构化数据的一些简单用例,是时候开始探索全文搜索了 - 如何在全文字段中搜索来找到最相关的文档. 对于全文搜索而言,最重要的两个方面 ...
- Elasticsearch 全文搜索和keyword search字段的mapping定义
在ES5.0之前我们对于需要keyword search的字段都是这样定义的: { "field name":{ "type": "string&qu ...
- elasticsearch全文搜索
1.创建索引 PUT 192.168.100.102:9200/news 2.创建mapping POST 192.168.100.102:9200/news/new/_mapping { " ...
- ElasticSearch全文搜索引擎(A)
文章:[Elasticsearch] 全文搜索 (一) - 基础概念和match查询 全文检索,是从最初的字符串匹配和简单的布尔逻辑检索技术,演进到能对超大文本.语音.图像.活动影像等非结构化数据进行 ...
- 全文搜索之 Elasticsearch
概述 Elasticsearch (ES)是一个基于 Lucene 的开源搜索引擎,它不但稳定.可靠.快速,而且也具有良好的水平扩展能力,是专门为分布式环境设计的. 特性 安装方便:没有其他依赖,下载 ...
- 在 Laravel 项目中使用 Elasticsearch 做引擎,scout 全文搜索(小白出品, 绝对白话)
项目中需要搜索, 所以从零开始学习大家都在用的搜索神器 elasiticsearch. 刚开始 google 的时候, 搜到好多经验贴和视频(中文的, 英文的), 但是由于是第一次接触, 一点概念都没 ...
- 使用ElasticSearch服务从MySQL同步数据实现搜索即时提示与全文搜索功能
最近用了几天时间为公司项目集成了全文搜索引擎,项目初步目标是用于搜索框的即时提示.数据需要从MySQL中同步过来,因为数据不小,因此需要考虑初次同步后进行持续的增量同步.这里用到的开源服务就是Elas ...
- ASP.NET Web API + Elasticsearch 6.x 快速做个全文搜索
最近想做个全文搜索,设想用 ASP.NET Web API + Elasticsearch 6.x 来实现. 网上搜了下 Elasticsearch 的资料,大部分是讲 linux 平台下如何用 ja ...
随机推荐
- (29)打鸡儿教你Vue.js
web阅读器开发 epub格式的解析原理 Vue.js+epub.js实现一个简单的阅读器 实现阅读器的基础功能 字号选择,背景颜色 有上一页,下一页的功能 设置字号,切换主题,进度按钮 电子书目录 ...
- mysql 统计查询出来的数目
select count(*) as dd from users;
- Android中显式意图和隐式意图的区别
1.显式意图 可以直接通过名称开启指定的目标组件: 通过构造方法Intent(Context packageContext,class<?>cls)来实现. button_1 = (But ...
- Hadoop(一)—— 启动与基本使用
一.安装&启动 安装 下载hadoop2.7.2 https://archive.apache.org/dist/hadoop/common/hadoop-2.7.2/ 2.7.2-官方文档 ...
- 北漂IT男返乡2年的三线楼市观察(宜昌夷陵篇)-原创
一直想写点什么,这段时间总算有空,好嘞,正好有兴致来写一写楼市相关的文章以饕读者和粉丝朋友. 宜昌?说宜昌您可能不知道,但是说三峡大坝您就知道了 最近这两年,因为小宝的降临,我多半时间待在老家宜昌陪伴 ...
- Shell脚本——make命令和Makefile文件【转】
https://blog.csdn.net/twc829/article/details/72729799 make命令是一个常用的编译命令,尤其在C/C++开发中,make命令通过makefile文 ...
- 启动项目报错:Unsupported major.minor version 52.0
解决方案: 确保Build Path或者电脑配置的环境变量版本号,和pom中的一致 Exception in thread "main" java.lang.Unsupported ...
- Microservices in action: java(spring) and .net
Manning | Homehttps://www.manning.com/ What is a Microservice? | Manninghttps://freecontent.manning. ...
- Qt编写气体安全管理系统23-类型设置
一.前言 类型设置这个功能模块大大拓展了整个系统的灵活性,将整个系统中所有用到的控制器型号.探测器数量.探测器型号.气体种类.气体符号都存储到数据库表中,用户在类型设置中可以自由添加删除和修改,这样后 ...
- nginx调优(一)
(1).隐藏nginx版本号 隐藏版本号可以有效避免黑客根据nginx版本信息,查找对应漏洞进行攻击. 下载nginx源码包(http://nginx.org/en/download.html)并上传 ...