Правя филтър за набор от заявки за "foo" в CharField, използвайки __ictonains и искам първо да намеря най-специфичните съвпадения на търсенето.
Набор от данни в базата данни за определено поле с име „описание“:
fooal;skdjfkasdgh;alskdjrf foobar foo-nstastical foobariffic foo-ntastic foo
Когато търся:
MyModel.objects.filter(description__icontains="foo")
Наборът от заявки връща резултатите в някакъв ред според идентификационния номер (или други фактори?):
fooal;skdjfkasdgh;alskdjrf foobar foo-nstastical foobariffic foo-ntastic
Ако покажа само първите 5 резултата, ще пропусна "foo", което всъщност е най-доброто съвпадение, което искам да покажа първо. Как мога да дам по-голяма тежест на по-добри съвпадения по прост начин, без да внедря „истински тежка“ търсачка като Lucene? Искам по-лесен филтър за набор от заявки.
Това е груба търсачка за набор от текстови данни, причината, поради която е по-важно първо да се покаже foo, когато се показват само първите N резултата, е, че ако човекът търси foobariffic, може да въведе повече букви. Но няма начин да получите "foo" чрез въвеждане на повече букви, ако е изместено от по-дълги записи.