我将C#NEST与ElasticSearch结合使用。我可以查询产品索引,并在其Name和CategoryName字段中查找匹配项。我还可以使用Highlights扩展查询。现在在IQueryResponse响应中,我有两个集合:(1).Documents和(2).Highlights。例如:考虑搜索:“cat”,其中包含3个文档结果:{ {名称:“Cat product”,类别名称:“Category1”}, {名称:“某些产品”,类别名称:“Category2”}, {名称:“Some product2”,类别名称:“Category3”}}但是现在我有4个突出结果:{ {栏位:“名称”,突出显示:['“ Cat 产品”']}, {栏位:“categoryName”,突出显示:['“ Cat egory1”']}, {栏位:“categoryName”,突出显示:['“ Cat egory2”']}, {栏位:“categoryName”,突出显示:['“ Cat egory3”']}}它们似乎毫无关联。 我如何知道哪个Highlight项目属于哪个Document项目? 最佳答案 IQueryResponse还公开了.DocumentsWithMetaData类型的IEnumerable<IHit<T>>,其中T是文档的类型这基本上是结果的展开 View ,因为elasticsearch的返回IHit<T>具有许多有用的属性,例如Highlights。我已经在高亮类Highlight中添加了DocumentId结果,因此无论您如何获得高亮,都可以轻松地将其与匹配匹配。因此,现在就使用.DocumentsWithMetaData,下一个版本将具有更符合逻辑的突出显示API。关于elasticsearch - NEST(ElasticSearch)将突出显示与文档匹配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17805251/
10-12 19:56