Я относительно новичок в работе с ArcticSearch и работаю с Elassearch в python. У меня были данные о людях в формате csv, которые я преобразовал в json и добавил в индекс эластичного поиска. Поля следующие:
'Last Name (Legal Name)',
'First Name',
'Middle Name',
'Other Last Name',
'Business Mailing Address City Name',
'Business Mailing Address State Name',
'Business Practice Location Address City Name',
'Business Practice Location Address State Name',
'Authorized Official Last Name',
'Authorized Official First Name',
'Authorized Official Middle Name',
'Authorized Official Title or Position'
То, что я хочу добавить в запрос, это что-то вроде «Name City». Например, «Клинтон Адамс Гамильтон», где Клинтон Адамс - это имя, а Гамильтон - город. В большинстве случаев я не буду уверен, какое имя или какое последнее, поэтому мне нужно будет сопоставить все поля.
То, что я использовал до сих пор, выглядит примерно так :
"query":{
"query_string":{
"fields": ['Last Name (Legal Name)', 'First Name', 'Middle Name',
'Other Last Name', 'Business Mailing Address City Name',
'Business Mailing Address State Name',
'Business Practice Location Address City Name', 'Business Practice
Location Address State Name',
'Authorized Official Last Name', 'Authorized Official First Name',
'Authorized Official Middle Name',
'Authorized Official Title or Position'],
"query": "(Clinton) AND (Adams) AND (Hamilton)",
}
}
Следующий запрос работает нормально, если я ищу точное имя и город из базы данных, но если у меня есть орфографическая ошибка в имени или если в каком-то имени сокращено имя, оно не ' дайте ожидаемые результаты. Например, если запрос похож на «Клинтон А Гамильтон», он не будет соответствовать ни одному документу. Я не могу использовать оператор OR
, так как есть несколько человек с похожими именами, поэтому важны все части запроса - имя / фамилия и город. Я бы хотел, чтобы запрос извлекал наиболее релевантную запись из индекса.
Я изо всех сил пытался объяснить ситуацию. В любом случае, не стесняйтесь спрашивать, если что-то не совсем понятно. Ценю ваши предложения. Спасибо.