相关疑难解决方法(0)

如何构建弹性搜索查询,以使文档字段中的每个标记都匹配?

我需要确保字段的每个标记在用户的搜索中至少与一个标记匹配.

为简化起见,这是一个通用的例子.

Store_Name = "Square Steakhouse"

当用户搜索Square或Steakhouse时,可以很容易地构建与该文档匹配的查询.此外,由于kstem过滤器连接到默认分析仪,牛排餐厅也可能匹配.

{
  "size": 30,
  "query": {
    "match": {
      "Store_Name": {
        "query": "Square",
        "operator": "AND"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,我需要匹配Store_Name字段的每个标记.我需要以下行为:

Query: Square Steakhouse    Result: Match
Query: Square Steakhouses   Result: Match
Query: Squared Steakhouse   Result: Match
Query: Square               Result: No Match
Query: Steakhouse           Result: No Match
Run Code Online (Sandbox Code Playgroud)

综上所述

  • 使用not_analyzed不是一个选项,因为我需要利用分析器功能
  • 我打算使用kstem,自定义同义词,自定义char_filter,小写过滤器以及标准标记器

但是,我需要确保字段的每个标记都匹配

这在弹性搜索中是否可行?

elasticsearch

5
推荐指数
1
解决办法
2647
查看次数

标签 统计

elasticsearch ×1