您可以根据布尔值过滤搜索结果。例如,您可以根据 in_stock
过滤搜索结果,以仅显示库存中的产品。
设置布尔字段
要根据布尔值过滤,您必须首先设置一个布尔字段。
将以下文档索引到 Elasticsearch 将创建一个名为 in_stock
的布尔字段
{
"in_stock": true
}
并且您的映射将如下所示
{
"mappings": {
"properties": {
"in_stock": {
"type": "boolean"
}
}
}
}
过滤器属性配置
在您的索引配置中添加一个过滤器属性。过滤器属性将用于根据库存标志过滤搜索结果。
{
"filter_attributes": [
{ attribute: 'in_stock', field: 'in_stock', type: 'string' },
]
}
或者,您可以在 facet_attributes
下设置属性,使其可用于分面。
{
"facet_attributes": [
{ attribute: 'in_stock', field: 'in_stock', type: 'string' },
]
}
属性名称在 filter_attributes
和 facet_attributes
中必须唯一。如果您想将同一属性用于过滤和分面,则仅将其添加到 facet_attributes
。
使用过滤器属性
您可以在搜索查询中使用过滤器属性,以在 configure
中按日期过滤搜索结果。
语法示例
"in_stock:true" # In stock is true