使用 NEST+ElasticSearch,我怀疑需要特殊编码的字符没有得到正确处理。示例:这不会返回任何结果
var results =
client.Search<MyClass>(s => s.Query(q => q.Term(t => t.ProgrammingLanguage, "C#")));
但在用例如“Ruby”替换“C#”后工作正常。查看索引,两个搜索都应该有结果。
已知问题?有解决方法吗?
使用 NEST+ElasticSearch,我怀疑需要特殊编码的字符没有得到正确处理。示例:这不会返回任何结果
var results =
client.Search<MyClass>(s => s.Query(q => q.Term(t => t.ProgrammingLanguage, "C#")));
但在用例如“Ruby”替换“C#”后工作正常。查看索引,两个搜索都应该有结果。
已知问题?有解决方法吗?
这不是编码问题,而是或多或少 lucene 和代理 elasticsearch 的工作方式。
默认分析器将拆分单词,因此 C# 将变为“c”。查看弹性搜索分析器,以便使用关键字分析器之类的东西按原样存储您的字段数据。
有关更多信息,请参见http://www.elasticsearch.org/guide/reference/index-modules/analysis/