我使用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檢查它,先生,新的更新。 –