Elasticsearch可以实现多字段搜索,具体方式如下:
通过在查询语句中的“multi_match”查询可同时查询多个字段。例如:
GET /_search
{
"query": {
"multi_match": {
"query": "需要搜索的内容",
"fields": ["field1", "field2", "field3"]
}
}
}
上述代码将在“field1”、“field2”和“field3”三个字段中搜索包含“需要搜索的内容”的文档。
我们也可以使用复合查询,将多个查询条件同时应用于同一个查询。例如:
GET /_search
{
"query": {
"bool": {
"must": [
{ "match": { "field1": "需要搜索的内容" }},
{ "match": { "field2": "需要搜索的内容" }}
]
}
}
}
上述代码将匹配同时包含“需要搜索的内容”且分别在“field1”和“field2”字段中的文档。
在高亮显示方面,我们可以使用highlight字段在搜索结果中对重要关键词进行高亮显示。例如:
GET /_search
{
"query": {
"multi_match": {
"query": "需要搜索的内容",
"fields": ["field1", "field2", "field3"]
}
},
"highlight": {
"fields": {
"field1": {},
"field2": {}
}
}
}
上述代码将在“field1”和“field2”字段中高亮显示搜索结果中的重要关键词。我们可以通过自定义highlight字段来设置高亮颜色等其他属性。