【发布时间】:2016-04-03 21:38:30
【问题描述】:
我正在使用弹性搜索 2.2 版本并使用以下查询 DSL:
{
"query": {
"match": {
"product": {
"query": "Razor 2004",
"operator": "and"
}
}
}
}
以下查询的输出将能够获取其中包含 Razor 和 2004 的所有产品。 因此,例如以下搜索字符串结果将是有效的:
"I am using Razor built in 2004"
"Razor 2004 is great"
但是下面的搜索字符串结果会是无效的
"I am using Razor built in 2005"
"Razor is great"
该查询适用于一个搜索输入,但我如何修改多个值的查询,例如
{
"query": {
"match": {
"product": {
"query": "Razor 2004","Shave 2015"
"operator": "and"
}
}
}
}
现在我正在寻找字符串中存在“Razor”和“2004”或“Shave”和“2015”的字符串。 我尝试了 bool 查询,但无法让“and”like 搜索工作。我的 bool 查询如下所示:
{
"query": {
"query": {
"bool": {
"should": [
{
"match": {
"product": "Razor 2004"
}
},
{
"match": {
"product": "Shave 2015"
}
}
]
}
}
}
}
有没有办法在具有多个 IN 值的字符串中提供类似“和”的搜索?
【问题讨论】:
标签: elasticsearch