【发布时间】:2014-11-07 23:38:39
【问题描述】:
假设我索引了名称如下的文档:1:abc, 2:*abc, 3:abc def, 4:def *abc, 5: 1abc
我想要这样的搜索:
搜索=abc 结果=1,2,3,4,5 搜索=*abc 结果=2,4
我使用这样定义的自定义分析器:
Add("myAnalyzer", new CustomAnalyzer
{
Tokenizer = "myTokenizer",
Filter = new[]
{
"myAsciiFolding"
,"lowercase"
,"ipPattern"
}
}
tokenizer 定义如下:
Add("ipTokenizer", new PatternTokenizer
{
Pattern = @"\W+"
})
像这样的 AsciiFolding:
Add("ipAsciiFolding", new AsciiFoldingTokenFilter
{
PreserveOriginal = true
})
实际上搜索 1 成功,但第二个(带“*”)返回与第一个相同。有没有办法指定多个标记器来完成我的预期?
有什么想法吗?
谢谢,
【问题讨论】:
-
您在映射中使用什么分析器?如果您想将 * 视为数据而不被忽略,您可能需要切换到 Whitespace analyzer。
标签: elasticsearch nest