Я использую python 2.7.11 и djnago 1.10.2. Я создал модели продуктов и сохранил 1000 продуктов в моей базе данных (postgrelsql). Фактически, я использовал Django elasticsearch, но не работал. его поиск основывается только на названии продукта, я требую, если категория поиска, цвет и т. д. Затем покажите выпущенный продукт. Я попробовал пример.Как использовать поиск с Elasticsearch
from haystack import indexes
from product.models import Product
class ProductIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
product_name = indexes.CharField(model_attr='product_name')
product_colour = indexes.CharField(model_attr='product_colour')
def get_model(self):
return Product
def index_queryset(self, using=None):
return self.get_model().objects.all()
Я создал Модели ProductColour и использовал product_colour foreignkey в продуктовых модах. Если я ищу product_colour, тогда отобразите все выпущенные данные.
После некоторых шагов: -
- Установите Джанго-стог.
- Добавлен стог сена в INSTALLED_APPS файл settings.py.
Измените файл settings.py.
HAYSTACK_CONNECTIONS = { 'default': { 'ENGINE': 'haystack.backends.simple_backend.SimpleEngine', }, }
Добавлен url в urls.py.
urlpatterns = patterns('', url(r'^/search/?$', MySearchView.as_view(), name='search_view'), )
модель товара.
class Product(models.Model): product_name = models.CharField(max_length=100) product_description = models.TextField(default=None, blank=True, null=True) product_colour = models.ManyToManyField(ProductColour, blank=True, default=None) ....... ....... .......
поиск.html.
<form method="get" action="."> <table> {{ form.as_table }} <tr> <td> </td> <td> <input type="submit" value="Search"> </td> </tr> </table> </form>
Пожалуйста, отправьте свой шаблон индекса поиска и соответствующие части вашей модели продукта. – trixn
@trixn plz проверить это сэр, новые обновления. –