繁体   English   中英

使用Nest和Field Suffix进行MultiMatch查询

[英]MultiMatch query with Nest and Field Suffix

使用Elasticsearch我有一个带后缀的字段 - 字符串字段,带有.english后缀,上面有英文分析器,如下图所示

...
"valueString": {
    "type": "string",
    "fields": {
        "english": {
             "type": "string",
             "analyzer": "english"
        }
    }
}
...

以下查询代码段将无法编译,因为ValueString没有English属性。

...
sh => sh
    .Nested(n => n
        .Path(p => p.ScreenData)
            .Query(nq => nq
                .MultiMatch(mm => mm
                    .Query(searchPhrase)
                    .OnFields(
                        f => f.ScreenData.First().ValueString,
                        f => f.ScreenData.First().ValueString.english)
                    .Type(TextQueryType.BestFields)
                )
            )
        )...

有没有办法在NEST中查询时强烈键入后缀或者我是否必须使用魔术字符串?

您是否尝试使用扩展方法Suffix

这是您修改查询的方法:

...
.OnFields(
    f => f.ScreenData.First().ValueString,
    f => f.ScreenData.First().ValueString.Suffix("english"))
.Type(TextQueryType.BestFields)
...

希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM