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

ElasticSearch 5.x上下文建议器NEST .Net

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

ElasticSearch 5.x上下文建议器NEST .Net

完成和上下文建议程序可以

_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



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

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

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