ES学习--基于词项term的搜索和基于全文的搜索

 时间:2024-11-01 11:42:37

1、首先创建一个名称为books的索引,并批量加入多条测试文档数据:// 删除索引DELETE books// 创建索引并批量添加数据霸烹钟爷POST /books/_bulk{"index":{"_id":1}}{"productId":"Deep Learn Linux", "desc":"Linux"}{"index":{"_id":2}}{"productId":"Java Thought", "desc":"Java"}{"index":{"_id":3}}{"productId":"Netty Actions", "desc":"Netty"

ES学习--基于词项term的搜索和基于全文的搜索

2、基于词项查询--单个词项匹配查询基于词项查询的语法结构为:GET /索引名称/_search{ "quer烤恤鹇灭y": { "term": { "字段名称":{ "value": "字段值" } } } }图1示:指定字段desc和值Linux查询,未获取到任何结果,因为原始数据在加入索引时,默认会进行分词处理,默认的分词器会将分词后的所有词项转化为小写,因此通过Linux无法查询到文档数据。图2示:根据上述的解释,通过 linux 查询就可以得到相应的文档数据。

ES学习--基于词项term的搜索和基于全文的搜索ES学习--基于词项term的搜索和基于全文的搜索

3、基于词项查询--多个词项的字符串匹配查询因为基于词项term的查询,查询串不做任何分词处理,因此如果你的查询串中包含多个词项,无论如何查询都不可能匹配到任何文档数据(图1示)。那基于词项term的查询,该如何处理多词项查询串的情况呢?可以记住多字段属性来查询(text类型属性默认有一个keyword字段)(图2示)。

ES学习--基于词项term的搜索和基于全文的搜索ES学习--基于词项term的搜索和基于全文的搜索

4、基于词项查询--跳过算分查询对于基于词项的查询,通常用于精确匹配,因此算分数值通常并不关键,可以通过 constant score 将其算分过程去掉,对于大数据量查询,可以提高查询效率!

ES学习--基于词项term的搜索和基于全文的搜索ES学习--基于词项term的搜索和基于全文的搜索
  • 如何将树转化为二叉树
  • 炉石传说修改游戏内语音;多语言;英语;法语等
  • 有序序列折半查找如何构建判定树?
  • 如何把QQ生日从阳历设置为阴历
  • S9赛季英雄联盟ADC伊泽瑞尔EZ玩法
  • 热门搜索
    怎么打新股 弹幕怎么读 磨砂牛皮鞋怎么清洗 怎么样才能瘦 退票怎么退 济南大学泉城学院怎么样 钢琴考级怎么考 abcd级车怎么区分 小便混浊是怎么回事 胆红素高怎么办