You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Cognitive Search自定义:如何保留内置停用词仅排除自定义停用词?

解决Azure Cognitive Search自定义停用词过滤问题

问题核心

你当前的配置同时启用了内置停用词过滤器和自定义停用词过滤器,导致内置停用词(如the、if)也被过滤,无法实现“保留内置、只过滤自定义”的需求。

正确配置方案

1. 定义自定义停用词过滤器

先创建一个仅过滤自定义停用词的过滤器,明确禁用内置停用词列表:

// 自定义停用词过滤器实例
var customStopwordsFilter = new StopwordsTokenFilter("custom-stopwords-filter")
{
    // 填入你的自定义停用词列表
    StopwordsList = new List<string> { "你要过滤的词1", "你要过滤的词2" },
    // 关键配置:禁用内置停用词,只应用自定义列表
    UseBuiltinStopwords = false
};

2. 更新AnalyzeTextOptions配置

移除触发内置停用词过滤的TokenFilterName.Stopwords,只保留必要的过滤器和自定义停用词过滤器:

TokenFilters = { ConstantAsciiFoldingName, TokenFilterName.Lowercase, "custom-stopwords-filter" };

原理说明

  • TokenFilterName.Stopwords是Azure Cognitive Search内置的停用词过滤器,默认会加载对应语言的内置停用词列表并过滤。
  • 当你同时添加内置过滤器和自定义停用词过滤器时,两者会依次生效,导致内置停用词也被移除。
  • 通过设置UseBuiltinStopwords = false,自定义过滤器只会处理你指定的停用词,不会触动内置列表,从而保留the、if这类词。

验证方法

使用Azure Cognitive Search的Analyze API测试,输入包含the、if和自定义停用词的文本,检查返回的token结果:

  • 确认the、if被保留
  • 确认自定义停用词被过滤

内容的提问来源于stack exchange,提问作者Amenawon Esezobor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 00:03:17