Azure Search应索引哪些列?SQL整表可搜索需全列设为可索引吗?
Azure Cognitive Search 索引列选择相关问题解答
一、如何选择创建索引的列?
核心依据是实际业务的搜索、筛选和展示需求,优先挑选以下几类字段:
- 用户会用关键词搜索的字段:比如商品名称、文章正文、产品描述这类用户输入关键词查找的内容,必须设为可索引(
searchable)。 - 用于筛选/缩小范围的字段:比如分类标签、价格区间、发布日期,这类需要用来精准过滤结果的字段,要设为可筛选(
filterable),如果需要支持排序还要额外设为可排序(sortable)。 - 仅用于结果展示的字段:比如商品ID、缩略图地址,这类不需要被搜索,但要在搜索结果里返回的字段,设为可检索(
retrievable)即可,无需设为可索引。 - 直接忽略无意义字段:比如数据库自增ID、内部状态码这类用户完全不会用到的字段,不用加入索引,减少资源消耗。
二、让整个SQL表可搜索,是否需要所有列都设为可索引列?
不需要。"整个表可搜索"指的是用户能通过搜索找到表中的数据,并非要求每一列都能被关键词匹配:
- 仅需把用户可能输入关键词搜索的核心字段设为
searchable(可索引)。 - 其他字段如果需要在结果中展示,或者用来筛选排序,只需要设置对应的属性(比如
retrievable、filterable),无需设为可索引。 - 部分内部字段甚至可以完全不加入索引,只要核心搜索字段覆盖到位,就能实现表数据的可搜索能力。
补充:Azure Cognitive Search的索引字段属性支持分开配置,一个字段可以同时拥有多个属性(比如既
searchable又filterable),不用一刀切。
内容的提问来源于stack exchange,提问作者Abhijeet
相关产品推荐
相关产品推荐

