【发布时间】:2017-03-02 09:36:43
【问题描述】:
我将 Microsoft SQL Server Management Studio 和 ElasticSearch 2.3.4 与 ElasticSearch-jdbc-2.3.4.1 一起使用,并将 ES 与我的 mssql 服务器链接。一切正常,但是当我在 MVC 程序上使用 NEST 进行查询时,结果为空。当我在search 属性中放入一个空字符串时,我得到了元素,但是当我尝试用一些过滤器填充它时,我得到一个空结果。有人可以帮帮我吗?提前致谢。
C#:
const string ESServer = "http://localhost:9200";
ConnectionSettings settings = new ConnectionSettings(new Uri(ESServer));
settings.DefaultIndex("tiky");
settings.MapDefaultTypeNames(map => map.Add(typeof(DAL.Faq), "faq"));
ElasticClient client = new ElasticClient(settings);
var response = client.Search<DAL.Faq>(s => s.Query(q => q.Term(x => x.Question, search)));
var result = response.Documents.ToList();
PS:我关注this guide创建它
编辑:
【问题讨论】:
-
可以分享索引映射吗?
http://localhost:9200/tiky/_mapping -
@Rob 当然,我已经更新了问题
-
Question字段已分析,terms query与not_analyzed字段一起使用。你可以阅读更多关于here的信息。 -
哦,是的,我明白了。那么,如果我想获取包含该值的元素,我该怎么办?有什么办法不分析字符串?
-
我不知道你搜索case,但我想你可以从
match query开始。
标签: c# sql-server asp.net-mvc elasticsearch nest