Elasticsearch 分词与字段类型(keyword vs. text)面试题

Elasticsearch 分词与字段类型(keyword vs. text)面试题 🔍

目录

基础概念

💡 问题1:Elasticsearch 中的 keyword 和 text 类型有什么区别?

👉 查看参考答案
对比项 keyword text
分词(Analysis) ❌ 不进行分词,存储原始字符串 ✅ 存入时先分词(如标准分词器)
搜索方式 🎯 只能精确匹配(如 term 查询) 🔎 支持全文检索(如 match 查询)
适用场景 📊 精确匹配、聚合、排序(如 status、ID) 📝 全文搜索(如 article、description)
是否支持 DocValues ✅ 默认支持(适合排序/聚合) ❌ 默认不支持(除非启用 fielddata)

底层存储

🗄️ 问题2:keyword 和 text 类型在倒排索引中的存储方式有何不同?

👉 查看参考答案
keyword:
  • 整个字符串作为**一个词项(term)**存入倒排索引
  • 例如 “error” 会直接存储为 error,搜索时必须完全匹配
text:
  • 字符串会被分词器拆分成多个词项
  • 例如 “Quick Fox” 可能被拆分为 ["quick", "fox"],支持部分匹配

查询影响

🔍 问题3:以下查询会返回什么结果?为什么?

PUT /test_index
{
   
  "mappings": {
   
    "properties": {
   
      "title": {
    "type": "text"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值