Ниже приведены примеры данных в elasticsearch.
PUT /data/test/1
{
"id": "Accounting 101",
"room": "E3",
"professor": {
"name": "Thomas Baszo",
"email": "[email protected]"
},
"students_enrolled": 27,
"course_description": " financial statements"
}
PUT /data/test/2
{
"name": "Accounting 101",
"room": "E3",
"professor": {
"name": "Sachin Baszo",
"email": "[email protected]"
},
"students_enrolled": 27,
"course_description": "Thomas Thomas Thomas Thomas "
}
Ниже приведен запрос
GET /_search
{
"query": {
"query_string": {
"query": "(*Thomas*)"
}
}
}
В моем выводе второй документ будет отображаться как первый, поскольку он содержит Томаса 4 раза в описании.
- Мне нужно придать больший вес
professor.name
, он должен сначала показать проверку, если нет, то проверить Professor.email, а затем проверить другие атрибуты.
питон
es.search(index="data", body={"query": {"query_string": {"query": "(*Thomas*)"}}})