您可以按数值过滤搜索结果。例如,您可以按价格、评分或任何其他数值过滤。
设置数值字段
要按数值过滤,您必须首先设置一个数值字段。
将以下文档索引到 Elasticsearch 将创建一个名为 price
的长字段
{
"price": 10
}
并且您的映射将如下所示
{
"mappings": {
"properties": {
"price": {
"type": "long"
}
}
}
}
过滤器属性配置
向您的索引配置中添加过滤器属性。过滤器属性将用于按价格过滤搜索结果。
{
"filter_attributes": [
{ attribute: 'price', field: 'price', type: 'numeric' },
]
}
或者,您可以在 facet_attributes
下设置属性以使其可用于分面。
{
"facet_attributes": [
{ attribute: 'price', field: 'price', type: 'numeric' }
]
}
属性名称在 filter_attributes
和 facet_attributes
中都必须是唯一的。如果您想将同一个属性用于过滤和分面,则只需将其添加到 facet_attributes
。
使用过滤器属性
您可以在搜索查询中使用过滤器属性,在 configure
中按日期过滤搜索结果。
语法示例
"price:10" # price is 10
"price:[10 TO 20]" # price is between 10 and 20
"price:[10 TO *]" # price is greater than 10
"price:[* TO 20]" # price is less than 20