ES中term、terms、match的区别
ES中term、terms、match的区别term query会去倒排索引中寻找确切的term,它并不知道分词器的存在,这种查询适合keyword、numeric、date等明确值的term:查询某个字段里含有某个关键词的文档GET /customer/doc/_search/{"query": {"term": {"title":"blog"}}}terms:查询某个字段里含有多个关键词的文档
·
ES中term、terms、match的区别
term query会去倒排索引中寻找确切的term,它并不知道分词器的存在,这种查询适合keyword、numeric、date等明确值的
term:查询某个字段里含有某个关键词的文档
GET /customer/doc/_search/
{
"query": {
"term": {
"title": "blog"
}
}
}
terms:查询某个字段里含有多个关键词的文档
GET /customer/doc/_search/
{
"query": {
"terms": {
"title": [ "blog","first"]
}
}
}
match query 知道分词器的存在,会对field进行分词操作,然后再查询
GET /customer/doc/_search/
{
"query": {
"match": {
"title": "my ss" #它和term区别可以理解为term是精确查询,这边match模糊查询;match会对my ss分词为两个单词,然后term对认为这是一个单词
}
}
}
更多推荐
已为社区贡献5条内容
所有评论(0)