Пример #1
0
 def search_index(self, index):
     from bungiesearch import Bungiesearch
     if index not in Bungiesearch.get_index(self.model, via_class=True):
         logger.warning(
             'Model/doctype {} is not present on index {}: search may return no results.'
             .format(self.model.__name__, index))
     return Bungiesearch().index(index).doc_type(self.model.__name__)
Пример #2
0
    def enqueue(self, action, sender, instance, **kwargs):
        """
        Given an individual model instance, determine if a backend
        handles the model, check if the index is Celery-enabled and
        enqueue task.
        """
        try:
            Bungiesearch.get_index(sender, via_class=True)
        except KeyError:
            return  # This model is not managed by Bungiesearch.

        if action not in self.ALLOWED_ACTIONS:
            raise ValueError("Unrecognized action %s" % action)

        get_update_task().delay(action, instance)
Пример #3
0
 def test_search_alias_model(self):
     self.assertEqual(
         Article.objects.bsearch_get_alias_for_test().get_model(), Article,
         'Unexpected get_model information on search alias.')
     self.assertEqual(
         Article.objects.search.bsearch_title(
             'title query').bsearch_get_alias_for_test().get_model(),
         Article, 'Unexpected get_model information on search alias.')
     self.assertRaises(
         ValueError,
         Bungiesearch().bsearch_get_alias_for_test().get_model)
Пример #4
0
 def custom_search(self, index, doc_type):
     '''
     Performs a search on a custom elasticsearch index and mapping. Will not attempt to map result objects.
     '''
     from bungiesearch import Bungiesearch
     return Bungiesearch(raw_results=True).index(index).doc_type(doc_type)
Пример #5
0
 def search(self):
     from bungiesearch import Bungiesearch
     return Bungiesearch().index(
         *Bungiesearch.get_index(self.model, via_class=True)).doc_type(
             self.model.__name__)
Пример #6
0
    def test_timeout_used(self):
        settings.BUNGIESEARCH['TIMEOUT'] = 29
        search = Bungiesearch()

        self.assertEqual(search.BUNGIE['TIMEOUT'], 29)
        self.assertEqual(search._using.transport.kwargs['timeout'], 29)
Пример #7
0
 def search_index(self, index):
     from bungiesearch import Bungiesearch
     if index not in Bungiesearch.get_index(self.model, via_class=True):
         logger.warning('Model/doctype {} is not present on index {}: search may return no results.'.format(self.model.__name__, index))
     return Bungiesearch().index(index).doc_type(self.model.__name__)
Пример #8
0
 def search(self):
     from bungiesearch import Bungiesearch
     return Bungiesearch().index(*Bungiesearch.get_index(self.model, via_class=True)).doc_type(self.model.__name__)
Пример #9
0
def get_model_indexing_query(model):
    return getattr(Bungiesearch().get_model_index(model.__name__).Meta,
                   'indexing_query', model.objects.all())
Пример #10
0
def get_model_index(model):
    return Bungiesearch().get_model_index(model.__name__)