我使用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()
我在Product moedls中创建了ProductColour模型并使用了product_colour foreignkey。如果我搜索product_colour,然后显示所有相关的数据。
以下一些步骤: -
- 安装Django,干草堆。
- 在INSTALLED_APPS settings.py文件中添加干草堆。
修改settings.py文件。
HAYSTACK_CONNECTIONS = { 'default': { 'ENGINE': 'haystack.backends.simple_backend.SimpleEngine', }, }
在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) ....... ....... .......
search.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检查它,先生,新的更新。 –