我需要寻找更多的重量 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"
}
下面是查询
GET /_search
{
"query": {
"query_string": {
"query": "(*Thomas*)"
}
}
}
我的输出将显示第二个文档作为第一个,因为它在描述中包含4次“thomas”
我需要给你更多的重量 professor.name
它应该先显示check,如果没有,然后选择professor.email,然后选择其他属性
预计出局为 1,3,2
1是因为名字,3是因为电子邮件,2是因为描述
python es.search(index="data", body={"query": {"query_string": {"query": "(*Thomas*)"}}})
1条答案
按热度按时间fruv7luv1#
添加索引数据、搜索查询和搜索结果的工作示例
如前一个答案所述,在创建索引时,boost也可以应用于各个字段
索引数据:
搜索查询:
搜索结果:
更新1:
寻找两者
Thomas OR Sachin
,您可以使用以下查询: