匹配多个搜索条件
GET /weiyihe/user/_search { "query":{ "match": { "tags": "男" } } }
网络异常,图片无法展示
|
网络异常,图片无法展示
|
多个条件直接用空格隔开,满足其中一个结果,就能被查出,这时候可以通过score进行基本判断
网络异常,图片无法展示
|
注意score,满足的条件越多.score越高权重越大
网络异常,图片无法展示
|
精确查询
term查询是直接通过倒排索引指定的词条进行精确的查找的 效率会更高
关于分词
由于term是倒排索引,直接进行精确查询
match会使用分词器进行解析,先分析文档,然后在通过分析的文档进行查询
两个字符串类型
text和keyword
text可以被分词器解析
keyword由于不可分割,不可以被分词器解析
创建索引库手动指名字段类型
PUT testdb { "mappings": { "properties": { "name":{ "type": "text" }, "desc":{ "type":"keyword" } } } }
网络异常,图片无法展示
|
再创建一个索引库,使用默认字段,新增数据
网络异常,图片无法展示
|
再插入一条
网络异常,图片无法展示
|
查看数据
网络异常,图片无法展示
|
使用keyword分词器查询数据 ,发现结果不会被分隔,因为keyword是一个整体,也可以说字符串没有被分析
GET _analyze { "analyzer": "keyword", "text": "魏一鹤学习Java" }
网络异常,图片无法展示
|
使用普通数据类型使用分词器,发现结果被分隔,正常的字符串是可以分析的
GET _analyze { "analyzer": "standard", "text": "魏一鹤学习Java" }
网络异常,图片无法展示
|
结论:
keyword类型不会被分词器解析