Как увеличить поле в match_all elasticsearch

#elasticsearch #dsl

#elasticsearch #dsl

Вопрос:

  • Мне нужно выполнить поиск большего веса, чтобы professor.name

  • Затем следующий атрибут для получения веса — professor.email

  • Проверка других полей, в которых есть строка поиска, ниже приведены примеры данных в elasticsearch

      PUT /data/test/1
    {
         "id": "Accounting 101",
         "room": "E3",
         "professor": {
             "name": "Thomas Baszo",
             "email": "baszot@onuni.com"
             },
         "students_enrolled": 27,
         "course_description": " financial statements"
     }
    
     PUT /data/test/2
     {
         "name": "Accounting 101",
         "room": "E3",
         "professor": {
             "name": "Sachin Baszo",
             "email": "baszot@onuni.com"
             },
         "students_enrolled": 27, 
         "course_description": "Thomas  Thomas Thomas Thomas "
     }
    
     PUT /data/test/3
     {
         "name": "Accounting 101",
         "room": "E3",
         "professor": {
             "name": "Sachin Baszo",
             "email": "Thomas@onuni.com"
             },
         "students_enrolled": 27, 
         "course_description": "Nothing"
     }
      

Ниже приведен запрос

ПОЛУЧИТЬ /_search

{"from" : 0, "size" : 100,"query": {"match_all": {}}})

Как реализовать "fields": [ "professor.name^16", "professor.email^8"]

Ответ №1:

Вы можете использовать сборку запроса multi_match на основе запроса match, чтобы разрешить запросы с несколькими полями:

Поисковый запрос:

 {
  "query": {
    "multi_match" : {
      "query" : "thomas",
      "fields" : [ "professor.name^16", "professor.email^8"]
    }
  }
}
  

Результат поиска:

 "hits": [
      {
        "_index": "stof_64275333",
        "_type": "_doc",
        "_id": "1",
        "_score": 15.693266,
        "_source": {
          "id": "Accounting 101",
          "room": "E3",
          "professor": {
            "name": "Thomas Baszo",
            "email": "baszot@onuni.com"
          },
          "students_enrolled": 27,
          "course_description": " financial statements"
        }
      },
      {
        "_index": "stof_64275333",
        "_type": "_doc",
        "_id": "3",
        "_score": 7.846633,
        "_source": {
          "name": "Accounting 101",
          "room": "E3",
          "professor": {
            "name": "Sachin Baszo",
            "email": "Thomas@onuni.com"
          },
          "students_enrolled": 27,
          "course_description": "Nothing"
        }
      }
    ]