ElasticSearch全文搜索指令学习

match_all query:返回所有文档,文档得分都是1

GET books/_search
{
	"query":{
		"match_all":{}
		}
}

term query:用来查找指定字段中包含给定单词的文档,term查询不被解析,只有查询词和文档词精确匹配才会被搜索到,应用场景为查询人名、地名等需要精确匹配的需求

GET books/_search
{
	"query":{
		"term":{"title":"思想"}
		}
}
  • 查询结果分页:from size
GET books/_search
{
	“from":0,
	"size":100,
	"query":{
		"term":{"title":"思想"}
		}
}
  • min_score:最小评分过滤机制
GET bookx/_search
{
	"min_score":0.6,
	"query":{
		"term":"变成"
		}
	}
}

natch query:会解析查询语句,对查询语句进行分词,分词后查询语句中任何一个词项被匹配,文档就会被搜索到。如果想查询匹配所有关键词的文档,使用and操作符连接。

GET books/_search
{
	"query":{
		"match":{
			"title":{
				"query":"java 变成",
				"operator":"or"
				}
			}
		}
	}

match_phrase query:首先会把查询内容分词,分词器可以自定义,且满足以下两个条件才会被检索到:

  • 分词后所有词项都出现在该字段中
  • 字段中词项顺序一致

match_phrase_prefix query:和match_phrase类似,只不过match_phrase_prefix支持最后一个term前缀匹配

GET test/_search
{
	"query":{
		"match_phrase_prefix":{
			"foo":"hello w"
			}
		}
	}

multi_match query;match的升级,用于搜索多个字段

GET  books/_search
{
	"query":{
		"multi_match":{
			"query":"java 编程",
			"fields":{"title","description"}
			}
		}
	}
  • multi_match:支持对搜索字典的名称使用通配符,
GET books/_search
{
	"query":{
		"multi_match":{
			"query":"java 编程“,
			"fields":{"title","*_name"}
			}
		}
	}
  • multi_match:支持使用指数符指定搜索字段的权重,
GET books/_search
{
	"query":{
		"multi_match":{
			"query":"java 编程”,
			"fields":{"title^3","description"}
			}
		}
	}

common_terms query:是一种在不牺牲性能的情况下替代停用词提高搜索准确率和召回率的方案(考虑停用词的有意义性)

  • common_terms query:将query分词后的此项分成重要词项(低频词)和不重要的词项(高频词)
  • 查询的时候:
    • 搜索和重要词项匹配的文档,对文档评分
    • 搜索对评分影响较小的高频词项,但是不计算文档评分
    • 如果一个查询只包含高频词,通过and连接符执行一个单独的查询,即搜索所有的词项。
  • 通过cutoff_frequency设置阈值
  • 自适应特定领域的停用词
GET books/_search
{
	"query":{
		"common":{
			"query":"nelly the elephant as a cartoon",
			"cutoff_frequency":0.001,
			"low_freq_operator":"and"
			}
		}
	}

query_string query

simple_query_string

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值