簡體   English   中英

Django Haystack 僅針對 1 個模型更新索引

[英]Django Haystack update index only for 1 model

我目前正在嘗試 Django haystack 將數據從 PostgreSQL 更新到 solr 集合。

所以,我在search_indexes.py中定義了 2 個模型。 因此,當我運行命令python manage.py update_index時,它會將search_indexes.py中定義的兩個模型的數據索引到我的 solr 集合中。

如何僅為我需要的特定模型執行update_index操作?

目前,當我運行命令時,運行了以下 2 個模型。

Indexing 2 model1
Indexing 12 model2

search_indexes.py

from haystack import indexes
from .models import table1, table2

class model1(indexes.SearchIndex, indexes.Indexable):
    text = indexes.CharField(
        document=True,
        use_template=True,
        template_name="search/indexes/tenants/table1_text.txt"
    )
    ats_id = indexes.CharField(model_attr='ats_id')
    ats_name = indexes.CharField(model_attr='ats_name')
    added_by = indexes.CharField(model_attr='added_by')
    added_on = indexes.DateTimeField(model_attr='added_on')

    def get_model(self):
        return table1

    def index_queryset(self, using=None):
        return self.get_model().objects.all()

class model2(indexes.SearchIndex, indexes.Indexable):
    text = indexes.CharField(
        document=True,
        use_template=True,
        template_name="search/indexes/tenants/table2_text.txt"
    template_id = indexes.CharField(model_attr='template_id')
    template_name = indexes.CharField(model_attr='template_name')
    aspect = indexes.CharField(model_attr='aspect')
    version = indexes.CharField(model_attr='version')
    added_by = indexes.CharField(model_attr='added_by')
    added_on = indexes.DateTimeField(model_attr='added_on')
    ats_id = indexes.CharField(model_attr='ats_id')

    def get_model(self):
        return table2

    def index_queryset(self, using=None):
        return self.get_model().objects.all()

請提出解決方法。

# Update just a single model (in a complex app).
./manage.py update_index models.model1

update_index 文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM