Elasticsearch 模糊查询和精确查询组合搜索
在 Elasticsearch 中,可以使用模糊查询和多个精确查询一起来过滤和搜索文档。
模糊查询可以使用通配符或正则表达式来匹配文档中的一部分内容。例如,可以使用通配符查询来查找包含特定字母序列的文档:
GET /index/_search
{
"query": {
"wildcard": {
"field": "*searchterm*"
}
}
}
多个精确查询可以使用布尔查询来组合多个查询条件。例如,可以使用布尔查询来同时匹配多个字段的值:
GET /index/_search
{
"query": {
"bool": {
"must": [
{ "term": { "field1": "value1" } },
{ "term": { "field2": "value2" } }
]
}
}
}
要将模糊查询和多个精确查询一起使用,可以将它们组合在一起。例如,可以使用布尔查询来同时匹配多个字段的值,并在其中一个字段上应用模糊查询:
GET /index/_search
{
"query": {
"bool": {
"must": [
{ "term": { "field1": "value1" } },
{ "term": { "field2": "value2" } },
{ "wildcard": { "field3": "*searchterm*" } }
]
}
}
}
这样就可以同时过滤和搜索满足多个精确条件并包含特定字母序列的文档。
原文地址: http://www.cveoy.top/t/topic/fOID 著作权归作者所有。请勿转载和采集!