我需要确保字段的每个标记都与用户搜索中的至少一个标记匹配。
为简化起见,这是一个通用示例。
让Store_Name = "Square Steakhouse"
当用户搜索 Square 或 Steakhouse 时,构建与此文档匹配的查询很简单。此外,通过将 kstem 过滤器附加到默认分析器,Steakhouses 也可能匹配。
{
"size": 30,
"query": {
"match": {
"Store_Name": {
"query": "Square",
"operator": "AND"
}
}
}
}
不幸的是,我需要匹配 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
总之
- 使用 not_analyzed 不是一个选项,因为我确实需要利用分析器功能
- 我打算使用 kstem、自定义同义词、自定义 char_filter、小写过滤器以及标准标记器
但是,我需要确保字段的每个标记都匹配
这在弹性搜索中可行吗?