Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- HAYSTACK_CONNECTIONS = {
- 'default': {
- 'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine',
- 'PATH': os.path.join( os.path.dirname(__file__), 'whoosh' ),
- },
- }
- from haystack.query import SearchQuerySet
- def search_titles(request):
- #'' - defaultvalue if searchvalue (search_text) is None
- articles =SearchQuerySet().autocomplete(content_auto=request.
- POST.get('search_text',''))
- return render(request,'ajax_search.html',{"articles":articles})
- urlpatterns = patterns('',
- url(r'^search/',include('haystack.urls')),
- )
- class Entry(models.Model):
- datetime = models.DateTimeField(auto_now_add = True)
- title = models.CharField(max_length = 70)
- content = models.TextField()
- author = models.ForeignKey(User)
- entry_count = models.PositiveIntegerField()
- n_pingbacks = models.PositiveIntegerField()
- belongsTo = models.ForeignKey(Topic)
- def __unicode__(self):
- return self.title
- from haystack import indexes
- from myapp.models import Entry
- import datetime
- class EntryIndex(indexes.SearchIndex, indexes.Indexable):
- text = indexes.CharField(document=True,use_template=True)
- datetime = indexes.DateTimeField(model_attr='datetime')
- content_audio = indexes.EdgeNgramField(model_attr='title')
- # get the relevant model
- def get_model(self):
- return Entry
- # returning results from guideline
- def index_queryset(self, using=None):
- """used when the entire index for model is updated """
- return self.get_model().objects.all()
- $(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);
- }
- {{ object.title }}
- {{ object.body }}
- {% extends 'base.html' %}
- {% block content %}
- <h2>Search</h2>
- <form method="get" action="../">
- <table>
- {{ form.as_table }}
- <tr>
- <td> </td>
- <td>
- <input type="submit" value="Search">
- </td>
- </tr>
- </table>
- {% if query %}
- <h3>Results</h3>
- {% for result in page.object_list %}
- <p>
- <a href="{{ result.object.get_absolute_url }}">{{ result.object.title }}</a>
- </p>
- {% empty %}
- <p>No results found.</p>
- {% endfor %}
- {% if page.has_previous or page.has_next %}
- <div>
- {% if page.has_previous %}<a href="?q={{ query }}&page={{ page.previous_page_number }}">{% endif %}« Previous{% if page.has_previous %}</a>{% endif %}
- |
- {% if page.has_next %}<a href="?q={{ query }}&page={{ page.next_page_number }}">{% endif %}Next »{% if page.has_next %}</a>{% endif %}
- </div>
- {% endif %}
- {% else %}
- {# Show some example queries to run, maybe query syntax, something else? #}
- {% endif %}
- </form>
- {% endblock %}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement