我在弹性搜索过滤时遇到问题。我想筛选订单行的索引。像这样的SQL查询:弹性搜索过滤问题
SELECT * FROM orderrow WHERE item_code = '7X-BogusItem'
这里是我的elasticsearch查询:
GET /myindex/orderrow/_search
{
"query": {
"constant_score": {
"filter": {
"term": {
"item_code": "7X-BogusItem"
}
}
}
}
}
我越来越没有结果返回。然而,当我运行此查询时:
GET /myindex/orderrow/_search
{
"query": {
"query_string": {
"query": "7X-BogusItem"
}
}
}
我得到正确的结果。我究竟做错了什么?
答案是描述你的问题。如果你想保持搜索行为,添加一个你不分析的multi_field。使用过滤器而不是查询可能会更好。你不是在寻找得分,而是寻找完全匹配。在做订单行时,你也应该看看嵌套的对象。这应该提供足够的信息进一步调查。 –