Używam Django filtr kwerendy __search aby przeprowadzić wyszukiwanie pełnotekstowe tu npDjango pełny porządek wyszukiwanie tekstu według trafności
MyModel.objects.filter(title__search = 'some title')
Jak mogę zmusić go zamówić według trafności, a obecnie wydaje się być zamawiania alfabetycznie ?
W szczególności chciałbym, aby wyniki wyszukiwania, w których tytuł był some title
pojawiały się najpierw przed czymś, co miało tytuł a different but contains some title
.
edit:
Co zauważyłem jest to, że w definicji modelu dla MyModel mam:
class Meta:
ordering = ['title']
Jeśli usunąć to wtedy staje się zamawianie poprawne tj posortowane według trafności. Czy istnieje sposób, w jaki mogę pozostawić to w definicji modelu jako przydatne gdzie indziej, ale następnie w moim zapytaniu powiedzieć, aby to zignorować?
Nie wierzę, że to naprawdę zamawiać nadzieję. Tylko według porządku naturalnego, jak wskazano, jest to wyszukiwanie logiczne. –
Powtórzę komentarz Enrico: biorąc pod uwagę odpowiedź, którą zaakceptowałeś, wydaje się, że nadal nie możesz zrozumieć, że twoje wyniki są rzeczywiście uporządkowane według trafności, jeśli usuniesz tytuł. Tak nie jest: nie ma znaczenia dla porządku przez, dostaniesz je według kolejności, którą baza danych zdecyduje, żeby ci je podać. –