我还没有在C#NEST中找到此属性的位置或是否已公开。例如,在弹性搜索中,您可以按如下方式指定普通荧光笔:
{
"size": 500,
"query": {
"query_string": {
"query": "\"C S M\"",
"fields": [
"contentsStem"
],
"default_operator": "and"
}
},
"highlight": {
"pre_tags": [
"<em>"
],
"post_tags": [
"</em>"
],
"fields": {
"contentsStem": { "type" : "plain" }
}
},
"fields": [
"nameStem"
]
}
通知类型:plain被指定为contesntsStem的属性。在NEST中,我有以下代码:
if (this.HighlightFields.Any())
{
var highlightFieldsAugmented = this.HighlightFields.Select(f => UnanalyzedFields.Contains(f) ? f : f + this.AnalyzerMode).ToList();
var highlightFieldsActions = highlightFieldsAugmented
.Select(field => new Action<HighlightFieldDescriptor<ElasticSearchHit>>(descriptor => descriptor.OnField(field)))
.ToArray();
searchdescriptor.Highlight(h => h.PreTags(this.HighlightPretag)
.PostTags(this.HighlightPosttag)
.OnFields(highlightFieldsActions)
);
}
var hits = ElasticSearchEngine.ElasticClientSingleInstance.Search(searchdescriptor);
此代码默认使用FV荧光笔,但我没有找到将其更改为普通荧光笔的方法。有没有办法在这种情况下使用普通荧光笔来形成C#中的NEST?
谢谢。
答案 0 :(得分:0)
这是在NEST 0.12.0中未映射的,即将推出的1.0版本允许你这样做:
var highlightFieldsActions = highlightFieldsAugmented
.Select(field => new Action<HighlightFieldDescriptor<ElasticSearchHit>>(
descriptor => descriptor
.OnField(field)
.Type("plain")
)
)
.ToArray();