جستجوگر پایتون برای جنگو

سلام من توی پروژه خودم به یه جستجوگر نیاز دارم
که نتایج خوبی بگیرم
و بخاطر این که الستیک سرچ منابع زیادی استفاده میکنه فعلا نمیتونم ازش استفاده کنم

کسی تجربه استفاده از جستجوگری به غیر الستیک سرچ رو دارهه که منابع خیلی زیادی استفاده نکنه
از گزینه های مثل haystack با بک اند whoosh استفاده کردم و نتایج خوبی اصلا نداشت یا این که من نتونستم به خوبی quary بزنم باهاش

چه دیتابیسی استفاده می کنی ؟

2 پسندیده

postgresql

خود postgres قابلیت full text search داره. من تا حالا ازش استفاده نکردم اما می تونه گزینه مناسبی باشه: https://www.postgresql.org/docs/9.5/textsearch.html

3 پسندیده

الان مدل من چندین رابطه داره توی جنگو
بعد توی دیتابیس این ها رو خودکار تشخیص میده
مثلاً الان مدل پست که میخوام سرچ روی اون باشه یه رابطه چند به چند با تگ ها داره و یه رابطه هم با دسته ها که برام خیلی مهمه که این ها کاملا بررسی بشن
چون وقت کاربر میاد داخل اپ من یا اصلا کلا سرچ من بر اساس وردی چندن تگ هستش مثلاً یکی از این تگ ها میتونه فوتبال

الان مثلاً یکی فوتبال و اسم یه تیم رو انتخاب کنه محتوای مربوط به همون ها. باید برارش بیاد

1 پسندیده

شما از الستیک سرچ استفاده کردین
و پادکست تون رو گوش دادم به نظر شما برای همچین کاری خوبه و عالی جواب میده

1 پسندیده

و مهم تر این که به هر سرچ یه رتبه داده بشه

الستیک سرچ اینجا خوب جواب می ده اما فکر می کنم واسه مرحله اول نیاز باشه سرچ هایی که نیاز داری رو روی کاغذ بیاری. منظورم اینه که چه سرچ هایی کاربرت نیاز داره

2 پسندیده

کلا به غیر از پایتون یا جنگو تجربه استفاده از سرچر خوب رو ندارین ؟

متوجه نشدم این رو

درسته

الان برنامه من کارش این که بنا به تگ های که کاربر انتخاب میکنه محتوا در همون زمینه بهش پیشنهاد داده بشه

خوب اگر در همین حد هستش خیلی پیشنهاد می کنم یه ایندکس درست کنی برای query ای که نیاز داره و فعلا فقط query بزنی.

2 پسندیده

https://gearheart.io/blog/how-to-use-django-postgresql-for-full-text-search/

این مقاله جالب بود

2 پسندیده

البته من در زبان دیگه در این مورد یکمی دو به شک شدم چون orm من فقط همین مورد از پستگرس رو در مقابل اینجکشن پروتکت نمی کرد.

اگه صرفا یه جسنجو ساده و بدون دردسر میخواین بسازین :

views.py


from django.views.generic.list import ListView
from .models import Playlists

class PlaylistsSearchView(ListView):

    model = Playlists
    paginate_by = '20'
    queryset = Playlists.objects.all().order_by('-date')

    def get_queryset(self):
            query = self.request.GET.get('q')
            if query:
                playlists_list = self.model.objects.filter(title__icontains=query)
            else:
                playlists_list = self.model.objects.none()
            return playlists_list
urls.py

from django.urls import path

urlpatterns = [
    path('playlists/search', PlaylistsSearchView.as_view(), name='searchplaylists' ),
]
jinja html template 

<form action="{% url 'searchplaylists' %}" method="get">
  <input name="q" type="text" placeholder="🔍" '>
</form>

easy one :smiley:

1 پسندیده

برای تگ هم اینو پیشنهاد میدم خیلی با مزه آسونه

1 پسندیده

ممنون نه من خیلی پیشرفته ترشو نیاز دارم که فعلا هم تونستم اوکیش کنم انشالله در آینده هم میرم روی الستیک سرچ

1 پسندیده

پیشنهاد میکنم تا میتونید از پیچدگی دوری کنید :grinning:

1 پسندیده

اره ولی برای اپ من خیلی نیازه سرچ :joy:

من استفاده کردم ولی نتایجی برمیگردوند که اصلا مرتبط نبودن از ساده ترین حالتش هم استفاده کردم ولی نتیجه اصلا خوبی نگرفتم
یعنی میگفتم دیتای برگردونه که مثلاً باید این کیبورد خاص رو داشته باشه توی این فیلدش ولی نتایجی نامرتبط برمیگردوند
نمیدونم شاید هنوز هم من اشتباه استفاده کردم