文档
指南
按数组值过滤

您可以根据字符串值的数组过滤搜索结果。这对于根据具有多个作者或标签的文档进行过滤很有用。

设置字符串字段

要按字符串过滤,您必须首先向索引中添加一个关键字。

将以下文档索引到 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_attributesfacet_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'
 })

Apache 2.0 2024 © Joseph McElroy。
需要帮助?加入 Discord