当前位置: 首页 > 面试题库 >

使用NEST创建自定义令牌过滤器

支嘉祥
2023-03-14
问题内容

如何使用带有此类JSON的NEST配置索引:

"settings":{
  "analysis":{
     "filter":{
        "name_ngrams":{
           "side":"front",
           "max_gram":50,
           "min_gram":2,
           "type":"edgeNGram"
        }
     },
     "analyzer":{            
        "partial_name":{
           "filter":[
              "standard",
              "lowercase",
              "asciifolding",
              "name_ngrams"
           ],
           "type":"custom",
           "tokenizer":"standard"
        }
     }
  }

我可以使用CustomAnalyzer类创建自定义分析器,但找不到如何创建自定义过滤器并将其注册到分析器中的方法。

提前致谢!


问题答案:

经过一番搜索,我找到了一个解决方案:

var partialName = new CustomAnalyzer
            {
                Filter = new List<string> {"lowercase", "name_ngrams", "standard", "asciifolding"},
                Tokenizer = "standard"
            };

var fullName = new CustomAnalyzer
            {
                Filter = new List<string> {"standard", "lowercase", "asciifolding"},
                Tokenizer = "standard"
            };

client.CreateIndex("indexname", c => c
                .Analysis(descriptor => descriptor
                    .TokenFilters(bases => bases.Add("name_ngrams", new EdgeNGramTokenFilter
                    {
                        MaxGram = 20,
                        MinGram = 2,
                        Side = "front"
                    }))
                    .Analyzers(bases => bases
                        .Add("partial_name", partialName)
                        .Add("full_name", fullName))
                )
                .AddMapping<Company>(m => m
                    .Properties(o => o
                        .String(i => i
                            .Name(x => x.Name)
                            .IndexAnalyzer("partial_name")
                            .SearchAnalyzer("full_name")
                        ))));


 类似资料:
  • 问题内容: 我正在尝试找出使用TypeScript创建自定义角度过滤器的最佳方法。 我看到的所有代码示例都使用类似以下内容的代码: …可以,但是由于我想将所有过滤器代码分开而显得有些混乱。所以我想知道如何将过滤器声明为一个单独的文件(例如,filters / reverse- filter.ts),这样我就可以创建它: …以与控制器,服务等相同的方式 TS和Angular的文档在地面上似乎很薄,尤

  • 我正在尝试创建一个自定义令牌,以使用用户的用户名登录。我看过一些文件https://firebase.google.com/docs/auth/admin/create-custom-tokens#web,通过如何为用户提供用户名而不是电子邮件登录链接到我?,我发现我需要补充 使用Firebase Admin SDK创建自定义令牌 和 在客户端上使用自定义令牌登录 目前我可以看到基于留档需要包含什

  • 演示在网关追加一个header public class CustomFilter implements GlobalFilter, Ordered { @Override public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { // 演示在网关追加heade

  • SOFARPC 提供了一套良好的可扩展性机制,为各个模块提供 SPI 的能力。 SOFARPC 对请求与响应的过滤链处理方式是通过多个过滤器 Filter 来进行具体的拦截处理,该部分可由用户自定义 Filter 扩展,自定义 Filter 的执行顺序在内置 Filter 之后。具体方式如下: Bolt Filter 新建自定义 Filter 。 public class CustomFilter

  • 依赖项:Spring Boot 1.1.5。释放,Spring4.0.6。Spring安全释放装置3.2.4。释放 问题:我正在创建一个自定义过滤器,该过滤器基于请求中的令牌查询提供者以验证用户。这里有自定义筛选器代码和配置。正如你所看到的,我已经尽可能地禁用了以查明问题。启用调试显示 另一件事是日志告诉我用户已通过身份验证。 当查询应用程序时,会发生无限循环并最终返回请求,curl说它无法遵循那

  • 本文向大家介绍详解AngularJS中$filter过滤器使用(自定义过滤器),包括了详解AngularJS中$filter过滤器使用(自定义过滤器)的使用技巧和注意事项,需要的朋友参考一下 1.内置过滤器 2.自定义过滤器     套用上面的格式定义两个简单的自定义过滤器一个带条件的,一个不带条件的。 (1)【不带条件】,功能:固定转换(有时候项目中会遇到角色代号,门店编码什么的,但是显示的时候