【发布时间】:2015-09-25 09:28:47
【问题描述】:
考虑以下文档:
{
"Title": "Western Europe"
}
我想针对 Title 字段运行此类搜索查询
- 苹果在西欧
- 苹果在东欧
我可以运行一个简单的匹配查询:
POST /_search
{
"query": {
"match": {
"Title": "Apple in Western Europe"
}
}
}
无论我使用哪个搜索词组,它显然都会匹配并带回它。但我想做一个查询,只有当 Title 字段 phrase 匹配 我的搜索查询时,我的文档才会返回。那可能吗?有没有额外的参数? phrase matching 似乎是相反的情况。
如果没有,我是否应该考虑使用带状疱疹重新索引我的数据?
因此,在这种情况下,运行此(使用附加参数)不会得分并带回我的文档。
POST /_search
{
"query": {
"match": {
"Title": "Apple in Eastern Europe"
}
}
}
tl;dr
如果我的搜索查询中存在其所有字段(我正在搜索的那个)标记,我如何编写一个可以带回文档的查询? 例如,我在文档中的字段仅包含这两个标记:
- abc
- xyz
如果我的搜索短语是,例如 Lorem ipsum dolor sit amet, consectetur adipiscing elit abc xyz,则文档被带回。
如果是 Lorem ipsum dolor sit amet, consectetur adipiscing elit xyz,它不会带回来。
【问题讨论】:
-
"bring my document back only if Title field phrase matches my search query"您的搜索查询是Apple in Western Europe。也许你想说“in之后应该匹配title”? -
在这个非常特殊的情况下是的。
-
@AndreiStefan 我用 tl;dr 更新了我的问题。我希望这能说清楚。
-
条款的顺序很重要吗?
-
这是个好问题。不,它没有。
标签: elasticsearch