我正在尝试在ElasticSearch 5.1.2上的Nest 5.0中创建带有上下文建议器的索引。
目前,我可以创建映射:
elasticClient.MapAsync<EO_CategoryAutocomplete>(m => m
.Properties(p => p
.Completion(c => c
.Contexts(ctx => ctx
.Category(csug => csug
.Name("lang")
.Path("l")
)
.Category(csug => csug
.Name("type")
.Path("t")
)
.Category(csug => csug
.Name("home")
.Path("h")
)
)
.Name(n => n.Suggest)
)
)
);
但在POCO类我不知道对象类型必须是什么 本稿 标明物业 ????? :
public class EO_CategoryAutocomplete
{
public string Id { get; set; }
public ????? Suggest { get; set; }
}
public class EO_CategoryAC
{
public int Id { get; set; }
public string Name { get; set; }
}
在NEST 5.0中, CompletionField 属性已被删除(这是在Elasticsearch 2.X上执行上下文提示的方法)
请,任何人都可以提供有关该方法的示例吗?
该文档全部关于查询。推荐人NEST
谢谢。
完成和上下文建议程序可以_source
在5.x +的响应中返回,因此不再需要有效负载。因此,NEST
5.x中的类型现在是CompletionField
,而不是CompletionField<TPayload>
NEST
2.x中TPayload
的有效负载类型。
这是NEST 5.x的示例,可帮助您启动和运行
public class EO_CategoryAutocomplete
{
public string Id { get; set; }
public IEnumerable<string> L { get; set; }
public CompletionField Suggest { get; set; }
}
void Main()
{
var pool = new SingleNodeConnectionPool(new Uri("http://localhost:9200"));
var connectionSettings = new ConnectionSettings(pool)
.DefaultIndex("autocomplete");
var client = new ElasticClient(connectionSettings);
if (client.IndexExists("autocomplete").Exists)
client.DeleteIndex("autocomplete");
client.CreateIndex("autocomplete", ci => ci
.Mappings(m => m
.Map<EO_CategoryAutocomplete>(mm => mm
.AutoMap()
.Properties(p => p
.Completion(c => c
.Contexts(ctx => ctx
.Category(csug => csug
.Name("lang")
.Path("l")
)
.Category(csug => csug
.Name("type")
.Path("t")
)
.Category(csug => csug
.Name("home")
.Path("h")
)
)
.Name(n => n.Suggest)
)
)
)
)
);
client.IndexMany(new[] {
new EO_CategoryAutocomplete
{
Id = "1",
Suggest = new CompletionField
{
Input = new [] { "async", "await" },
// explicitly pass a context for lang
Contexts = new Dictionary<string, IEnumerable<string>>
{
{ "lang", new [] { "c#" } }
}
}
},
new EO_CategoryAutocomplete
{
Id = "2",
Suggest = new CompletionField
{
Input = new [] { "async", "await" },
// explicitly pass a context for lang
Contexts = new Dictionary<string, IEnumerable<string>>
{
{ "lang", new [] { "javascript" } }
}
}
},
new EO_CategoryAutocomplete
{
Id = "3",
// let completion field mapping extract lang from the path l
L = new [] { "typescript" },
Suggest = new CompletionField
{
Input = new [] { "async", "await" },
}
}
}, "autocomplete");
client.Refresh("autocomplete");
var searchResponse = client.Search<EO_CategoryAutocomplete>(s => s
.Suggest(su => su
.Completion("categories", cs => cs
.Field(f => f.Suggest)
.Prefix("as")
.Contexts(co => co
.Context("lang",
cd => cd.Context("c#"),
cd => cd.Context("typescript"))
)
)
)
);
// do something with suggestions
var categorySuggestions = searchResponse.Suggest["categories"];
}
该searchResponse
收益
{
"took" : 2,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 0,
"max_score" : 0.0,
"hits" : [ ]
},
"suggest" : {
"categories" : [
{
"text" : "as",
"offset" : 0,
"length" : 2,
"options" : [
{
"text" : "async",
"_index" : "autocomplete",
"_type" : "eo_categoryautocomplete",
"_id" : "3",
"_score" : 1.0,
"_source" : {
"id" : "3",
"l" : [
"typescript"
],
"suggest" : {
"input" : [
"async",
"await"
]
}
},
"contexts" : {
"lang" : [
"typescript"
]
}
},
{
"text" : "async",
"_index" : "autocomplete",
"_type" : "eo_categoryautocomplete",
"_id" : "1",
"_score" : 1.0,
"_source" : {
"id" : "1",
"suggest" : {
"input" : [
"async",
"await"
],
"contexts" : {
"lang" : [
"c#"
]
}
}
},
"contexts" : {
"lang" : [
"c#"
]
}
}
]
}
]
}
}
建议使用ID "1"
和的文档"3"
。您还可以使用“
源过滤”仅从中返回您感兴趣的字段_source
。
本文向大家介绍windows7系统安装elasticsearch5.X,包括了windows7系统安装elasticsearch5.X的使用技巧和注意事项,需要的朋友参考一下 一、安装jdk ElasticSearch是基于lucence开发的,也就是运行需要java jdk支持。所以要先安装JAVA环境。 由于ElasticSearch 5.x 往后依赖于JDK 1.8的,所以现在我们下载JDK
要使人晓得智慧和训诲,分辨通达的言语。使人处事,领受智慧、仁义、公平、正直的训诲。使愚人灵明、使少年人有知识和谋略。使智慧人听见、增长学问、使聪明人得着智谋、使人明白箴言和譬喻、懂得智慧人的言词和谜语。敬畏耶和华使知识的开端,愚妄人藐视智慧和训诲。 上下文管理器 在《文件(1)》中提到,如果要打开文件,一种比较好的方法是使用with语句,因为这种方法,不仅结构简单,更重要的是不用再单独去判断某种异
Context managers for use with the with statement. 注解 When using Python 2.5, you will need to start your fabfile with from __future__ import with_statement in order to make use of the with statement (w
我有一个C++SFMLOpenGL4.1渲染引擎,我想移植到OS X10.9小牛。SFML似乎不支持OS X上的OpenGL4(或3)。如果我想坚持使用C++(我更喜欢避免Obj C)来获得OS X中的渲染上下文,我有什么选择?
问题内容: 我正在使用ElasticSearch,并且具有以下索引映射: 我该如何获得建议者在返回“扑热息痛片”时立即返回: 我需要使用自定义分析器和字典吗? 问题答案: 问题是参数。如果将其设置为它返回您的预期结果。我无法真正向您解释0.8为何有效的原因,因为实际上0.5意味着50%的术语可能写错了,这就是您的用例,但在某种程度上可以与0.8一起使用。也许在elasticsearch用户组中询问
主要内容:创建上下文过滤器在Tableau中排列的所有过滤器都是独立计算的。并且,每个过滤器都可以访问数据源中的所有行,而无需查看其他过滤器。 可以将一个或多个分类过滤器排列为视图的上下文过滤器。上下文过滤器可以作为独立的过滤器。组织的任何其他过滤器都被定义为依赖过滤器,因为它们只处理通过上下文过滤器的数据。 创建上下文过滤器的原因如下: 提高性能: 如果要设置大量过滤器或具有重要数据源,则查询开始运行缓慢。在这种情况下,