【发布时间】:2016-04-28 06:36:35
【问题描述】:
我如下设置索引。但是现在我有一个要求,因此我需要调整索引样式。 (我必须在下面的代码中添加分析器字段)。
参考[我之前的问题及其答案]:Elastic Search using NEST - Results different in debug and browser mode
如何改写
var connectionSettings = new ConnectionSettings(pool)
.DefaultIndex(defaultIndex)
.MapDefaultTypeNames(m => m.Add(typeof(Class1), "omg"))
.PrettyJson()
.DisableDirectStreaming());
使用如下映射设置。
{
"mappings": {
"Class1": {
"properties": {
"Answer": {
"type": "string",
"analyzer": "english"
}
}
}
}
}
这是我的回答:
settings = new ConnectionSettings(pool)
.DefaultIndex(defaultIndex)
.MapDefaultTypeNames(m => m.Add(typeof(Class1), "omg"))
.PrettyJson()
.DisableDirectStreaming();
var descriptor = new CreateIndexDescriptor(defaultIndex)
.Mappings(ms => ms
.Map<Class1>(m => m
.Properties(ps => ps
.String(s=>s
.Name(n=>n.Ans)
.Analyzer("english")))));
我想我在索引创建和映射之间缺少链接。虽然它在编码时没有显示错误,但输出并不像预期的那样。
TIA
【问题讨论】:
-
我刚刚在 Sense 插件上试了一下,看看它是否工作正常。然后尝试通过在
.MapDefaultTypeNames(m => m.Add(typeof(Class1), "omg"))之后添加.MapPropertiesFor<>来稍微调整您的代码我的想法是,在将名称默认为class1 之后,我们需要提供它们的属性,所以尝试.MapProperties -
谢谢拉斯。将查看它并返回答案。
-
@RussCam 我尝试为其创建索引描述符,但输出与预期不符。我错过了任何链接吗?我必须将此描述符传递给设置吗?
标签: c# linq elasticsearch nest