Предположим, у меня есть два индекса в эластичном поиске. Первый names
содержит пять значений Ram, Shyam, Hari, Dipu, Kishan
, а второй profession
содержит пять значений, таких как teacher, driver, doctor, bank manager, salesman
. Когда кто-то печатает Ra
, я хочу показать предложения типа
Ram is teacher
Ram is driver
Ram is doctor
Ram is bank manager
Ram is salesman
Точно так же, когда кто-то печатает Har
, я хочу показать
Hari is teacher
Hari is driver
Hari is doctor
Hari is bank manager
Hari is salesman
Я не хочу хранить все возможные комбинации.
Также предположим, что пользователь ищет Ram is a doctor at Raman Hospital since 2002.
Здесь Ram, doctor, Raman Hospital, 2002
относится к разным индексам. Когда пользователь вводит Ram
, я хочу отображать предложения как Ram is a teacher at Basic Boys School Since 2002
, Ram is salesman at HUL since 2006
. И если есть еще один парень с именем Raman
, тогда Raman is driver at Ola since 2012
также должен быть показан как предложение. Для таких поисков есть ли хороший подход, или я должен работать над этим?
Отображение:
PUT name
{
"mappings": {
"_doc" : {
"properties" : {
"suggest" : {
"type" : "completion",
"contexts": [
{
"name": "userid",
"type": "category"
}
]
}
}
}
}
}
Индексация:
POST name/_doc/
{
"suggest": {
"input": ["BHANU PRAKASH"],
"contexts": {
"userid": ["99569858","99156661","90273758","6598242461","65910563"]
}
}
}