我需要将以下SQL查询转换为ES查询:
SELECT *
FROM SKILL
WHERE SKILL.name LIKE 'text' and SKILL.type = 'hard'
我已经使用python3的“ elasticsearch”库尝试了以下操作:
query = self.__es.search(index="skills",
body={"from" : skip, "size" : limit,
"query":
{"query_string":
{"query": 'text'}
})
,效果很好。但是现在,我不知道如何检查字段“类型”是否等于“硬”。 我该怎么办?
谢谢。
答案 0 :(得分:0)
您必须使用布尔查询,在“必须”部分中放置两个查询,全文查询一个,术语查询一个:
{
"query": {
"bool": [{
"match": {
"name": "this is a test"
}
}, {
"term": {
"type": "hard"
}
}]
}
}
在此之前,您必须将type属性存储为关键字字段。