Advertisement
Guest User

Untitled

a guest
Mar 29th, 2015
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.31 KB | None | 0 0
  1. HAYSTACK_CONNECTIONS = {
  2. 'default': {
  3. 'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine',
  4. 'PATH': os.path.join( os.path.dirname(__file__), 'whoosh' ),
  5. },
  6. }
  7.  
  8. from haystack.query import SearchQuerySet
  9.  
  10. def search_titles(request):
  11. #'' - defaultvalue if searchvalue (search_text) is None
  12. articles =SearchQuerySet().autocomplete(content_auto=request.
  13. POST.get('search_text',''))
  14.  
  15. return render(request,'ajax_search.html',{"articles":articles})
  16.  
  17. urlpatterns = patterns('',
  18. url(r'^search/',include('haystack.urls')),
  19.  
  20. )
  21.  
  22. class Entry(models.Model):
  23. datetime = models.DateTimeField(auto_now_add = True)
  24. title = models.CharField(max_length = 70)
  25. content = models.TextField()
  26. author = models.ForeignKey(User)
  27. entry_count = models.PositiveIntegerField()
  28. n_pingbacks = models.PositiveIntegerField()
  29.  
  30. belongsTo = models.ForeignKey(Topic)
  31. def __unicode__(self):
  32. return self.title
  33.  
  34. from haystack import indexes
  35. from myapp.models import Entry
  36. import datetime
  37.  
  38. class EntryIndex(indexes.SearchIndex, indexes.Indexable):
  39.  
  40. text = indexes.CharField(document=True,use_template=True)
  41. datetime = indexes.DateTimeField(model_attr='datetime')
  42.  
  43. content_audio = indexes.EdgeNgramField(model_attr='title')
  44.  
  45. # get the relevant model
  46. def get_model(self):
  47. return Entry
  48.  
  49. # returning results from guideline
  50. def index_queryset(self, using=None):
  51. """used when the entire index for model is updated """
  52.  
  53. return self.get_model().objects.all()
  54.  
  55. $(function(){
  56.  
  57. $('#search').keyup(function() {
  58.  
  59. $.ajax({
  60. type: "POST",
  61. url: "/search/",
  62. data: {
  63. 'search_text' : $('#search').val(),
  64. 'csrfmiddlewaretoken' : $("input[name=csrfmiddlewaretoken]").val()
  65. },
  66. success: searchSuccess,
  67. dataType: 'html'
  68. });
  69.  
  70. });
  71.  
  72. });
  73.  
  74. function searchSuccess(data, textStatus, jqXHR)
  75. {
  76. $('#search-results').html(data);
  77. }
  78.  
  79. {{ object.title }}
  80. {{ object.body }}
  81.  
  82. {% extends 'base.html' %}
  83.  
  84. {% block content %}
  85. <h2>Search</h2>
  86.  
  87. <form method="get" action="../">
  88. <table>
  89. {{ form.as_table }}
  90. <tr>
  91. <td>&nbsp;</td>
  92. <td>
  93. <input type="submit" value="Search">
  94. </td>
  95. </tr>
  96. </table>
  97.  
  98. {% if query %}
  99. <h3>Results</h3>
  100.  
  101. {% for result in page.object_list %}
  102. <p>
  103. <a href="{{ result.object.get_absolute_url }}">{{ result.object.title }}</a>
  104. </p>
  105. {% empty %}
  106. <p>No results found.</p>
  107. {% endfor %}
  108.  
  109. {% if page.has_previous or page.has_next %}
  110. <div>
  111. {% if page.has_previous %}<a href="?q={{ query }}&page={{ page.previous_page_number }}">{% endif %}&laquo; Previous{% if page.has_previous %}</a>{% endif %}
  112. |
  113. {% if page.has_next %}<a href="?q={{ query }}&page={{ page.next_page_number }}">{% endif %}Next &raquo;{% if page.has_next %}</a>{% endif %}
  114. </div>
  115. {% endif %}
  116. {% else %}
  117. {# Show some example queries to run, maybe query syntax, something else? #}
  118. {% endif %}
  119. </form>
  120. {% endblock %}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement