Django-haystack полнотекстовый поиск работает, но аспекты не

Использование django-haystack иasticsearch. Полнотекстовый поиск работает нормально, но у меня проблемы с реализацией граней. Я искал учебник в Интернете, но безуспешно, другими словами, не понял ни одного из них. Я новичок в программировании, поэтому некоторая помощь будет оценена. Заранее спасибо. Извините за мой английский, если не хорошо, это не мой основной язык. Вот мой рабочий полнотекстовый поиск.

articles.models.py

class Article(models.Model):
    category =      models.CharField(max_length=60)
    subcategory =   models.CharField(max_length=100)
    name =          models.CharField(max_length=255)
    price =         models.DecimalField(max_digits=8, decimal_places=2)
    pub_date =      models.DateTimeField(auto_now_add=True)
    country =       models.CharField(max_length=60)
    city =          models.CharField(max_length=60)
    # other fields ...

12 категорий (Транспорт и запчасти, Компьютеры и комплектующие ....)

Подкатегории для транспортных средств и запчастей (автомобилей, грузовиков, мотоциклов, запчастей ....) Я решил эту проблему с помощью JavaScript при отправке формы для статьи, то же самое для страны и города.

articles.search_indexes.py

class ArticleIndex(indexes.SearchIndex, indexes.Indexable):
    text =          indexes.CharField(document=True, use_template=True)
    subcategory =   indexes.CharField(model_attr='subcategory', faceted=True)
    price =         indexes.DecimalField(model_attr='price', faceted=True)
    pub_date =      indexes.DateTimeField(model_attr='pub_date', faceted=True)
    country =       indexes.CharField(model_attr='country', faceted=True)
    city =          indexes.CharField(model_attr='city', faceted=True)

    content_auto = indexes.EdgeNgramField(model_attr='name')

    def get_model(self):
        return Article

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

articles_text

{{ object.name }}
{{ object.subcategory }}
{{ object.price }}
{{ object.pub_date }}
{{ object.country }}
{{ object.city }}

articles.views.py

def searchArticles(request):
    articles = SearchQuerySet().autocomplete(content_auto=request.POST.get('search_text', ''))
    return render_to_response('ajax_search.html', {'articles': articles})

base.html

    {% csrf_token %}
    <input type="text" id="search" class="edo-trazi" name="search" />
    <ul id="search-results">
    </ul>

ajax_search.html

{% if articles.count > 0 %}
{% for article in articles %}
<li class="edo-trazi-artikal"><img class="edo-trazi-slika" src="/static/aktiva/{{ artikal.object.slika }}"/>
<a class="edo-trazi-ime" href="/artikli/prikazi/{{ artikal.object.id }}/{{ artikal.object.slug }}/">{{ artikal.object.name }}</a>   
{% endfor %}
{% else %}
<li>No results!</li>
{% endif %}

ajax.js

$(function(){

$('#search').keyup(function() {

    $.ajax({
        type: "POST",
        url: "/search/",
        data: { 
            'search_text' : $('#search').val(),
            'csrfmiddlewaretoken' : $("input[name=csrfmiddlewaretoken]").val()
        },
        success: searchSuccess,
        dataType: 'html'
    });

});

});

function searchSuccess(data, textStatus, jqXHR)
{
$('#search-results').html(data);
}    

project.urls.py

url(r'^search/

Приведенный выше пример кода работает нормально, если кто-то заинтересован в автозаполнении, я могу рассказать ему столько, сколько знаю.

vehiclesParts.urls.py

url(r'^

vehiclesParts.views.py

def vehiclesPartsView(request):
    return render_to_response('vehiclesParts.html', context_instance=RequestContext(request))

def searchVehiclesParts(request):
    articles = SearchQuerySet().facet('subcategory').facet('price').facet('pub_date').facet('country').facet('city')
    # how to make this code run in similar way like above autocomplete(with ajax), also to 
    # filter results by category "filter (category= 'Vehicles and Parts')", because this
    # advanced search I'll have to do for each category to display and search
    # articles only for that category.
    return render_to_response('ajax-vehiclesParts.html', {'articles': articles})

ajax-VehiclesParts.html - может совпадать с ajax_search.html. Я просто добавлю несколько дополнительных полей. vehicleParts.html - Как добавить фасеты в шаблон и выбранную подкатегорию или что-то еще, чтобы отобразить результаты в ajax-VehiclesParts.html через Ajax? Также, если возможно запомнить выбранную подкатегорию, так что если следующий выбран «город Лондон» или что-то еще, чтобы отобразить результаты только для этой подкатегории.

ajax-VehiclesParts.js ?????

, 'articles.views.searchArticles'), url(r'^vehicles-parts/', include('vehiclesParts.urls')),

Приведенный выше пример кода работает нормально, если кто-то заинтересован в автозаполнении, я могу рассказать ему столько, сколько знаю.

vehiclesParts.urls.py

url(r'^$', 'vehiclesParts.views.vehiclesPartsView', name='vehiclesParts'),
url(r'^search/$', 'vehiclesParts.views.searchVehiclesParts'),

vehiclesParts.views.py

def vehiclesPartsView(request):
    return render_to_response('vehiclesParts.html', context_instance=RequestContext(request))

def searchVehiclesParts(request):
    articles = SearchQuerySet().facet('subcategory').facet('price').facet('pub_date').facet('country').facet('city')
    # how to make this code run in similar way like above autocomplete(with ajax), also to 
    # filter results by category "filter (category= 'Vehicles and Parts')", because this
    # advanced search I'll have to do for each category to display and search
    # articles only for that category.
    return render_to_response('ajax-vehiclesParts.html', {'articles': articles})

ajax-VehiclesParts.html - может совпадать с ajax_search.html. Я просто добавлю несколько дополнительных полей. vehicleParts.html - Как добавить фасеты в шаблон и выбранную подкатегорию или что-то еще, чтобы отобразить результаты в ajax-VehiclesParts.html через Ajax? Также, если возможно запомнить выбранную подкатегорию, так что если следующий выбран «город Лондон» или что-то еще, чтобы отобразить результаты только для этой подкатегории.

ajax-VehiclesParts.js ?????

, 'vehiclesParts.views.vehiclesPartsView', name='vehiclesParts'), url(r'^search/

vehiclesParts.views.py

def vehiclesPartsView(request):
    return render_to_response('vehiclesParts.html', context_instance=RequestContext(request))

def searchVehiclesParts(request):
    articles = SearchQuerySet().facet('subcategory').facet('price').facet('pub_date').facet('country').facet('city')
    # how to make this code run in similar way like above autocomplete(with ajax), also to 
    # filter results by category "filter (category= 'Vehicles and Parts')", because this
    # advanced search I'll have to do for each category to display and search
    # articles only for that category.
    return render_to_response('ajax-vehiclesParts.html', {'articles': articles})

ajax-VehiclesParts.html - может совпадать с ajax_search.html. Я просто добавлю несколько дополнительных полей. vehicleParts.html - Как добавить фасеты в шаблон и выбранную подкатегорию или что-то еще, чтобы отобразить результаты в ajax-VehiclesParts.html через Ajax? Также, если возможно запомнить выбранную подкатегорию, так что если следующий выбран «город Лондон» или что-то еще, чтобы отобразить результаты только для этой подкатегории.

ajax-VehiclesParts.js ?????

, 'articles.views.searchArticles'), url(r'^vehicles-parts/', include('vehiclesParts.urls')),

Приведенный выше пример кода работает нормально, если кто-то заинтересован в автозаполнении, я могу рассказать ему столько, сколько знаю.

vehiclesParts.urls.py

url(r'^$', 'vehiclesParts.views.vehiclesPartsView', name='vehiclesParts'),
url(r'^search/$', 'vehiclesParts.views.searchVehiclesParts'),

vehiclesParts.views.py

def vehiclesPartsView(request):
    return render_to_response('vehiclesParts.html', context_instance=RequestContext(request))

def searchVehiclesParts(request):
    articles = SearchQuerySet().facet('subcategory').facet('price').facet('pub_date').facet('country').facet('city')
    # how to make this code run in similar way like above autocomplete(with ajax), also to 
    # filter results by category "filter (category= 'Vehicles and Parts')", because this
    # advanced search I'll have to do for each category to display and search
    # articles only for that category.
    return render_to_response('ajax-vehiclesParts.html', {'articles': articles})

ajax-VehiclesParts.html - может совпадать с ajax_search.html. Я просто добавлю несколько дополнительных полей. vehicleParts.html - Как добавить фасеты в шаблон и выбранную подкатегорию или что-то еще, чтобы отобразить результаты в ajax-VehiclesParts.html через Ajax? Также, если возможно запомнить выбранную подкатегорию, так что если следующий выбран «город Лондон» или что-то еще, чтобы отобразить результаты только для этой подкатегории.

ajax-VehiclesParts.js ?????

, 'vehiclesParts.views.searchVehiclesParts'),

vehiclesParts.views.py

def vehiclesPartsView(request):
    return render_to_response('vehiclesParts.html', context_instance=RequestContext(request))

def searchVehiclesParts(request):
    articles = SearchQuerySet().facet('subcategory').facet('price').facet('pub_date').facet('country').facet('city')
    # how to make this code run in similar way like above autocomplete(with ajax), also to 
    # filter results by category "filter (category= 'Vehicles and Parts')", because this
    # advanced search I'll have to do for each category to display and search
    # articles only for that category.
    return render_to_response('ajax-vehiclesParts.html', {'articles': articles})

ajax-VehiclesParts.html - может совпадать с ajax_search.html. Я просто добавлю несколько дополнительных полей. vehicleParts.html - Как добавить фасеты в шаблон и выбранную подкатегорию или что-то еще, чтобы отобразить результаты в ajax-VehiclesParts.html через Ajax? Также, если возможно запомнить выбранную подкатегорию, так что если следующий выбран «город Лондон» или что-то еще, чтобы отобразить результаты только для этой подкатегории.

ajax-VehiclesParts.js ?????

, 'articles.views.searchArticles'), url(r'^vehicles-parts/', include('vehiclesParts.urls')),

Приведенный выше пример кода работает нормально, если кто-то заинтересован в автозаполнении, я могу рассказать ему столько, сколько знаю.

vehiclesParts.urls.py

url(r'^$', 'vehiclesParts.views.vehiclesPartsView', name='vehiclesParts'),
url(r'^search/$', 'vehiclesParts.views.searchVehiclesParts'),

vehiclesParts.views.py

def vehiclesPartsView(request):
    return render_to_response('vehiclesParts.html', context_instance=RequestContext(request))

def searchVehiclesParts(request):
    articles = SearchQuerySet().facet('subcategory').facet('price').facet('pub_date').facet('country').facet('city')
    # how to make this code run in similar way like above autocomplete(with ajax), also to 
    # filter results by category "filter (category= 'Vehicles and Parts')", because this
    # advanced search I'll have to do for each category to display and search
    # articles only for that category.
    return render_to_response('ajax-vehiclesParts.html', {'articles': articles})

ajax-VehiclesParts.html - может совпадать с ajax_search.html. Я просто добавлю несколько дополнительных полей. vehicleParts.html - Как добавить фасеты в шаблон и выбранную подкатегорию или что-то еще, чтобы отобразить результаты в ajax-VehiclesParts.html через Ajax? Также, если возможно запомнить выбранную подкатегорию, так что если следующий выбран «город Лондон» или что-то еще, чтобы отобразить результаты только для этой подкатегории.

ajax-VehiclesParts.js ?????

Ответы на вопрос(0)

Ваш ответ на вопрос