三种场景:

    • 最佳字段(Best Fields)

    当字段之间互相竞争,又互相关联。例如title和body这样的字段。评分来自最匹配字段
    GET accounts/_search{
    "query": {
    "multi_match": {
    "type": "best_fields",
    "query": "strong",
    "fields": ["firstname","lastname","email"],
    "tie_breaker": 0.2,
    "minimum_should_match": "20%" } }}

    • 多数字段(Most Fields)

    处理英文内容时:一种常见的手段是,在主字段(English Analyzer),抽取词干,加入同义词,以匹配更多的文档。相同的文本,加入子字段(Standard Analyzer),以提供更加精确的匹配。其他计算作为匹配文档提高相关度的信号。匹配字段越多越好。
    PUT titles{
    "mappings": {
    "properties": {
    "title": {
    "type": "text",
    "analyzer": "english",
    "fields": {
    "std": {
    "type":"text", "analyzer": "standard" } } } } }}
    GET titles/_search{
    "query": {
    "multi_match": {
    "type": "most_fields",
    "query": "my boy",
    "fields": ["title","title.std"] } }}

    • 混合字段(Cross Field)

    对于某些实体,例如人名、地址、图书信息。需要在多个字段中确定信息,单个字段只能作为整体的一部分。希望在任何这些列出的字段中找到尽可能多的词
    POST address/_search{
    "query": {
    "multi_match": {
    "query": "Poland W1V",
    "type": "cross_fields",
    "operator": "and",
    "fields": ["street","city","country","postcode"] } }}