Тема: Пошук Django+Haystack+Elasticksearch
Привіт!
Доводиться мені зараз прикрутити пошук до сайту. Сайт досить великий, є 5 основних типів даних (по яких треба зробити пошук), всього разом в кількості десь 20-30 (не точно) тис. об'єктів в базі. Вирішив робити з даними технологіями, а не просто Q, так як здаэться вийде дуже велике навантаження з ним.
1. От тут і така ідея: поле одне, але при виведенні результатів розділяти все на вкладки, залежно від типу моделі. Це ок так буде?
Можете запропонувати щось якось інакше?
2. Може мені хтось пояснити наступне: як я зрозумів, пошук штука, що хоче багато ресурсів і щоб ефективно все працювало, треба спочатку зібрати ті дані з об'єктів, в яких в майбутному будемо шукати співпадіння введеного юзером. Це індекси. Правильно?
Що тоді це таке? Haystack документація каже створити такий клас індекс:
class PlaceIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
name = indexes.CharField(model_attr='name')
user = indexes.CharField(model_attr='user')
def get_model(self):
return Place
Там де є use_template значить там має бути txt шаблон, a в шаблоні:
{{ object.name }}
{{ object.user.get_full_name }}
{{ object.features }}
здається, тут ми виводимо саме ту інформацію, яку треба зберегти в індексі. Правильно?
Навіщо тоді оці атрибути в класі індексу:
name = indexes.CharField(model_attr='name')
user = indexes.CharField(model_attr='user')
Що вони роблять?
Оце такі 2 питання. Якщо знаєте щось, допоможіть-розкажіть, будь ласка.
Звісно ж, в гуглі я був. Там просто туторіали є скопіювати, вставити...
Вельми вдячний.