#rest #search #elasticsearch
#rest #Поиск #elasticsearch
Вопрос:
У меня есть этот набор данных
{
"took" : 2,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 16,
"max_score" : 1.0,
"hits" : [ {
"_index" : "tenant1",
"_type" : "consultation",
"_id" : "100038",
"_score" : 1.0, "_source" : {"id":"100038","patientPin":"2012010000000020","prescriptions":[],"diagnosis":["Amoebiasis"],"patientFirstName":"Scooby","patientLastName":"Doo","documentDate":"06/13/2014"}
}, {
"_index" : "tenant1",
"_type" : "consultation",
"_id" : "100007",
"_score" : 1.0, "_source" : {"id":"100007","patientPin":"2012010000000016","prescriptions":["METHISOPRINOL ISOPRINOSINE"],"diagnosis":["Alcohol Intoxication"],"patientFirstName":"Johnny","patientLastName":"Bravo","documentDate":"06/10/2014"}
}, {
"_index" : "tenant1",
"_type" : "consultation",
"_id" : "100015",
"_score" : 1.0, "_source" : {"id":"100015","patientPin":"2012010000000010","prescriptions":[],"diagnosis":["Amoebiasis"],"patientFirstName":"Tweety","patientLastName":"Bird","documentDate":"06/10/2014"}
}, {
"_index" : "tenant1",
"_type" : "consultation",
"_id" : "100027",
"_score" : 1.0, "_source" : {"id":"100027","patientPin":"2012010000000014","prescriptions":[],"diagnosis":["Food Poisoning"],"patientFirstName":"Marvin","patientLastName":"Martian","documentDate":"06/11/2014"}
}, {
"_index" : "tenant1",
"_type" : "consultation",
"_id" : "100046",
"_score" : 1.0, "_source" : {"id":"100046","patientPin":"2012010000000027","prescriptions":[],"diagnosis":["Amoebiasis"],"patientFirstName":"Yabba","patientLastName":"Doo","documentDate":"06/13/2014"}
}, {
"_index" : "tenant1",
"_type" : "consultation",
"_id" : "100058",
"_score" : 1.0, "_source" : {"id":"100058","patientPin":"2012010000000003","prescriptions":[],"diagnosis":["Amoebiasis"],"patientFirstName":"Elmer","patientLastName":"Fudd","documentDate":"06/13/2014"}
}, {
"_index" : "tenant1",
"_type" : "consultation",
"_id" : "100042",
"_score" : 1.0, "_source" : {"id":"100042","patientPin":"2012010000000021","prescriptions":[],"diagnosis":["Amoebiasis"],"patientFirstName":"Scrappy","patientLastName":"Doo","documentDate":"06/13/2014"}
}, {
"_index" : "tenant1",
"_type" : "consultation",
"_id" : "100054",
"_score" : 1.0, "_source" : {"id":"100054","patientPin":"2012010000000026","prescriptions":[],"diagnosis":["Amoebiasis"],"patientFirstName":"Scooby","patientLastName":"Dum","documentDate":"06/13/2014"}
}, {
"_index" : "tenant1",
"_type" : "consultation",
"_id" : "100066",
"_score" : 1.0, "_source" : {"id":"100066","patientPin":"2012010000000015","prescriptions":[],"diagnosis":["Amoebiasis"],"patientFirstName":"Hippety","patientLastName":"Hopper","documentDate":"06/13/2014"}
}, {
"_index" : "tenant1",
"_type" : "consultation",
"_id" : "100050",
"_score" : 1.0, "_source" : {"id":"100050","patientPin":"2012010000000002","prescriptions":[],"diagnosis":["Amoebiasis"],"patientFirstName":"Daffy","patientLastName":"Duck","documentDate":"06/13/2014"}
} ]
}
}
Однако, когда я запрашиваю через консоль Rest Google Chromes с этим запросом
{
"query" : {
"match" : {
"patientFirstName" : "Scooby"
}
}
}
Он возвращает весь результат вот URL, который я использую для поиска
http://localhost:9200/tenant1/consultation/_search
Я также даже сделал
http://localhost:9200/tenant1/consultation/_search?patientLastName:Doo
и он по-прежнему возвращает все результаты. Он должен возвращать только один результат
Комментарии:
1. Похоже, что есть два «Scooby», поэтому запрос должен возвращать два результата.
Ответ №1:
Измените свой запрос на это.(добавить _search?q=)
http://localhost:9200/tenant1/consultation/_search?q=patientLastName:Doo
Ответ №2:
Попробуйте выполнить запрос bool, это гарантирует, что он вернет его в качестве результата —
{
"query": {
"bool": {
"must": {
"term": {
"patientFirstName": "Scooby"
}
}
}
}
}
Дополнительная информация здесь.