如何在NEST中创建一个索引,它将不区分大小写的术语与TermQuery进行比较?
我尝试了以下(以及许多类似方法),但我的TermQuery仅返回区分大小写的匹配结果。
Client.CreateIndex("my_index", (c) => c
.Settings(s => s
.Analysis(an => an
.Analyzers(ans => ans
.Custom("analyzer_keyword", cu => cu
.Tokenizer("keyword")
.Filters("lowercase")
)
.Custom("analyzer_term", cu => cu
.Tokenizer("term")
.Filters("lowercase")
)
)
)
)
);
答案 0 :(得分:1)
我不知道如何用NEST做这件事,但我知道一件事 - 你有两个选择:
default
analyzer 或
analyzer_keyword
和analyzer_term
作为文档的字段。因为您的代码现在只指定了一些不在任何地方使用的自定义分析器。
看看specifying an index time analyzer:
在索引时,如果未指定
analyzer
,则会在名为default
的索引设置中查找分析器。如果失败,则默认使用standard
分析器。
和specifying a search time analyzer:
用于搜索特定字段的分析器通过查找:
来确定
- 查询本身中指定的
analyzer
。search_analyzer
映射参数。analyzer
映射参数。- 索引设置中名为
default_search
的分析器。- 索引设置中名为
default
的分析器。standard
分析器。