弹性嵌套访问文本类型的子属性

时间:2018-12-14 10:02:55

标签: elasticsearch range nest

我已经创建了文本属性 name ,并且我已经将子属性创建为 words_count of name ,并且我想对words_count of name进行范围查询。我如何使用Nest在c#中访问它。

<style>
.link{display:none;}

@media (max-width: 991px){
    .modal{
        display: none;
    }
    .link{
        display: block;
    }
}
</style>

<a href="#" class="modal"> modal </a>

<a href="#" class="link" target="_blank"> link </a>

我有名字的长度,但是它来自c#字符串的长度。我要访问用Elastic创建的名称的words_count子属性。

server.html#something

我想从弹性巢穴中替换 f.name.words_count 。我需要为具有属性长度的名称创建类吗?

1 个答案:

答案 0 :(得分:1)

您无需创建POCO属性即可映射到multi-field(通常也称为fieldssub-fields)。

它们是能够以多种不同方式索引单个输入的功能,这在搜索用例中非常常见。例如,使用多种不同类型的分析为街道地址编制索引。

您可以使用.Suffix(...)扩展方法来引用multi-field

Func<QueryContainerDescriptor<MyType>, QueryContainer> query = m => m
    .Range(r => r
        .Field(f => f.name.Suffix("words_count"))
        .Relation(RangeRelation.Within)
        .GreaterThanOrEquals(10)
        .LessThanOrEquals(14)
    );