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