Ho esaminato i documenti e ho persino creato alcuni backend di ricerca, ma sono ancora molto confuso su ciò che queste cose fanno nel pagliaio. cerca in fondo alla ricerca dei campi che hai inserito nella tua classe che eredita indexes.SearchIndex, index.Indexable, o è il back-end che cerca il testo all'interno del tuo modello? Qualcuno può spiegarmelo?Django Haystack: responsabilità del modello e degli indici del modello
Nel pagliaio del django creerai una classe che definisce quali campi devono essere interrogati (beh è così che ho capito bene) in questo modo:
class ProductIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
name = indexes.CharField(model_attr='title', boost=1.75)
description = indexes.CharField(model_attr='description')
short_description = indexes.CharField(model_attr='short_description')
def get_model(self):
return Product
def index_queryset(self, using=None):
"""Used when the entire index for model is updated."""
return self.get_model().objects.filter(active=True,
published_at__lte=datetime.now())
potrai anche creare un modello txt tha farò qualcosa - non sono sicuro di cosa. So che il backend di ricerca andrà oltre questo modello durante l'algoritmo di ricerca.
{{ object.name }}
{{ object.description }}
{{ object.short_description }}
{% for related in object.related %}
{{ related.name }}
{{ related.description }}
{% endfor %}
{% for category in object.categories.all %}
{% if category.active %}
{{ category.name }}
{% endif %}
{% endfor %}
Come si può vedere il modello ha alcuni campi che la mia classe di indice non ha, tuttavia, questi saranno cercati dal backend di ricerca. Allora, perché anche i campi nell'indice? Quali sono i rotoli della classe di indice e il modello di indice? Qualcuno può spiegarmelo per favore.
Non sono sicuro di averti capito completamente. Puoi aggiungere qualche esempio (preferibilmente in codice) di tale back-end e spiegare in dettaglio che cosa ti confonde esattamente? Stai chiedendo come funziona Haystack in sottofondo, sei generalmente confuso su come utilizzare alcune funzionalità? – yuvi
Ho fatto il meglio che potevo. Sono solo molto confuso su quale sia esattamente lo scopo sui rotoli della classe index e del template dell'indice e su cosa viene cercato dal backend. – user2734679
Questo è molto più chiaro. Non sono sicuro di poterti aiutare, ma ora la domanda è molto meglio. Spero che qualche ninjaio di pagliaio arriverà presto! – yuvi