您可以根据字符串值的数组过滤搜索结果。这对于根据具有多个作者或标签的文档进行过滤很有用。
设置字符串字段
要按字符串过滤,您必须首先向索引中添加一个关键字。
将以下文档索引到 Elasticsearch 将创建一个可用于过滤的 tags
字段。
{
"tags": ["ecommerce", "FW23"]
}
您的映射将如下所示
{
"properties": {
"tags": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
}
}
}
}
}
过滤器属性配置
向您的索引配置中添加一个过滤器属性。过滤器属性将用于根据日期过滤您的搜索结果。
{
"filter_attributes": [
{ attribute: 'tags', field: 'tags.keyword', type: 'string' },
]
}
或者,您也可以在 facet_attributes
下添加属性,以使其可用于分面。
{
"facet_attributes": [
{ attribute: 'tags', field: 'tags.keyword', type: 'string' }
]
}
属性名称在 filter_attributes
和 facet_attributes
中都必须唯一。如果要将同一个属性用于过滤和分面,则只需将其添加到 facet_attributes
中。
使用过滤器属性
您可以在搜索查询中使用过滤器属性,以在 configure
中按日期过滤搜索结果。
语法示例
过滤器必须遵循 Elasticsearch 查询字符串 (在新标签页中打开) 格式。
"tags:ecommerce" # author is John
"author:ecommerce OR tags:fw23" # author is John or Jane
示例
client.configure({
filters: 'tags:ecommerce'
})