#elasticsearch #orchardcms
#elasticsearch #orchardcms
Вопрос:
У меня следующий запрос
{
"from": 0, "size": 10000,
"query": { "match_phrase": {"Practitioner.DoctorList": "peter goh"} },
}
это не возвращает никакого результата.
Но следующее:
{
"from": 0, "size": 10000,
"query": { "match": {"Practitioner.DoctorList": "peter goh"} },
}
возвращает содержимое, содержащее «питер го», «peter» и «goh».
Почему ничего не match_phrase
возвращает? Поскольку я хочу, чтобы результаты совпадали только с «peter goh».
Комментарии:
1. Не могли бы вы, пожалуйста, поделиться отображением?
Ответ №1:
Поскольку вы не добавили никаких выборочных данных и сопоставление индексов (учитывая, что они Practitioner
имеют nested
тип)
Обратитесь к запросу match_phrase, чтобы получить подробную информацию
Добавление рабочего примера с индексными данными, сопоставлением и поисковым запросом.
Сопоставление индексов:
{
"mappings": {
"properties": {
"Practitioner": {
"type": "nested"
}
}
}
}
Индексировать данные:
{
"Practitioner": [
{
"DoctorList": "goh"
},
{
"DoctorList": "peter goh"
},
{
"DoctorList": "peter"
}
]
}
Поисковый запрос:
{
"query": {
"nested": {
"path": "Practitioner",
"query": {
"match_phrase": {
"Practitioner.DoctorList": "peter goh"
}
},
"inner_hits":{}
}
}
}
Результат поиска:
"hits": [
{
"_index": "fd_cb3",
"_type": "_doc",
"_id": "1",
"_nested": {
"field": "Practitioner",
"offset": 1
},
"_score": 0.78038335,
"_source": {
"DoctorList": "peter goh"
}
}
]
Комментарии:
1. Извините, я новичок в OrchardCore. Есть ли место для определения этого сопоставления индексов и индексных данных в OrchardCore?