栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

需要具体的文档/使用NEST ElasticSearch库构建复杂索引的示例

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

需要具体的文档/使用NEST ElasticSearch库构建复杂索引的示例

您对问题的回答越具体,所获得的答案就越好。不过,这里有一个索引,该索引设置了一个分析器(带有过滤器)和令牌生成器(EdgeNGram),然后使用它们在Tag类的Name字段上创建自动完成索引。

public class Tag{    public string Name { get; set; }}Nest.IElasticClient client = null; // Connect to ElasticSearchvar createResult = client.CreateIndex(indexName, index => index    .Analysis(analysis => analysis        .Analyzers(a => a .Add(     "autocomplete",     new Nest.CustomAnalyzer()     {         Tokenizer = "edgeNGram",         Filter = new string[] { "lowercase" }     } )        )        .Tokenizers(t => t .Add(     "edgeNGram",     new Nest.EdgeNGramTokenizer()     {         MinGram = 1,         MaxGram = 20     } )        )    )    .AddMapping<Tag>(tmd => tmd        .Properties(props => props .MultiField(p => p     .Name(t => t.Name)     .Fields(tf => tf         .String(s => s  .Name(t => t.Name)  .Index(Nest.FieldIndexOption.not_analyzed)         )         .String(s => s  .Name(t => t.Name.Suffix("autocomplete"))  .Index(Nest.FieldIndexOption.analyzed)  .IndexAnalyzer("autocomplete")         )     ) )        )    ));

在github上的NEST的单元测试项目中,还有一个相当完整的映射示例。
https://github.com/elasticsearch/elasticsearch-
net/blob/develop/src/Tests/Nest.Tests.Unit/Core/Map/FluentMappingFullExampleTests.cs

编辑:

要查询索引,请执行以下操作:

string queryString = ""; // search stringvar results = client.Search<Tag>(s => s    .Query(q => q        .Text(tq => tq .onField(t => t.Name.Suffix("autocomplete")) .QueryString(queryString)        )    ));


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/393243.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号