elasticsearch 弹性搜索面过滤器,elasticsearch,filter,yii2,facet,elasticsearch,Filter,Yii2,Facet" /> elasticsearch 弹性搜索面过滤器,elasticsearch,filter,yii2,facet,elasticsearch,Filter,Yii2,Facet" />

elasticsearch 弹性搜索面过滤器

elasticsearch 弹性搜索面过滤器,elasticsearch,filter,yii2,facet,elasticsearch,Filter,Yii2,Facet,我已经使用elasticsearch创建了一个方面,但我只想过滤特定的单词 { ... "facets": { "my_facets": { "terms": { "field": "description", "size": 1000 } } } } 结果包含描述中的所有单词 { "my_facet": { "_type": "terms", "missing": 0, "tota

我已经使用elasticsearch创建了一个方面,但我只想过滤特定的单词

{
  ...
  "facets": {
    "my_facets": {
      "terms": {
        "field": "description",
        "size": 1000
      }
    }
  }
}
结果包含描述中的所有单词

{
  "my_facet": {
    "_type": "terms",
    "missing": 0,
    "total": 180,
    "other": 0,
    "terms": [
      {
        "term": "și",
        "count": 1
      },
      {
        "term": "światłowska",
        "count": 1
      },
      {
        "term": "łódź",
        "count": 1
      }
    ]
  }
}
我希望我的方面只包含对特定单词的分析,而不是对描述中找到的整个单词的分析。
我已经尝试在我的facet中使用查询匹配,但它可以进行全面分析 如下

{
  "query_Facet_test": {
    "query": {
      "match": {
        "description": "word1 word2"
      }
    }
  }
}
我得到的结果是:

{
  "query_Facet_test": {
    "_type": "query",
    "count": 1
  }
}

您可以使用这样的bool查询来获取查询方面

{
    "query": {
        "bool": {
            "must": [
                {
                    "match": {
                        "description": "word1"
                    }
                },
                {
                    "match": {
                        "description": "word2"
                    }
                }
            ]
        }
    },
    "facets": {
        "my_facets": {
            "terms": {
                "field": "description",
                "size": 1000
            }
        }
    }
}

请记住,将来会被替换为,所以最好从这些开始。我知道,但我使用的是yii2 elasticsearch扩展,它只支持facet。我定义了一个带有特定过滤器的搜索查询,但我只希望在facet中分析word1和word2。此查询返回对描述中找到的每个单词的分析