示例#1
0
 def __repr__(self):
     return "<Hit: model=%s pk=%s, percent=%s rank=%s weight=%s>" % (
         utils.model_name(self.model),
         self.pk,
         self.percent,
         self.rank,
         self.weight,
     )
示例#2
0
    def _prepare(self, db, model=None):
        """Initialize attributes"""
        self._db = db
        self._model = model
        self._model_name = model and utils.model_name(model)

        self.fields = [] # Simple text fields
        self.tags = [] # Prefixed fields
        self.aliases = {}
示例#3
0
    def _prepare(self, db, model=None):
        """Initialize attributes"""
        self._db = db
        self._model = model
        self._model_name = model and model_name(model)

        self.fields = []  # Simple text fields
        self.tags = []  # Prefixed fields
        self.aliases = {}
示例#4
0
    def do_use(self, index):
        """
        Changes current index
        """
        space, model, indexer = self._get_indexer(index)

        self._current_index = indexer

        print "Using `%s:%s:%s` index." % (space, utils.model_name(model), indexer)
    def do_use(self, index):
        """
        Changes current index
        """
        space, model, indexer, path = self._get_indexer(index)

        if indexer is not None:
            self._current_index = indexer
            self._current_index_path = path

            print "Using `%s:%s:%s` index." % (space, utils.model_name(model), indexer)
示例#6
0
 def do_list(self, arg):
     """
     Lists all available indexes with their ids
     """
     print "Installed spaces/models/indexers:"
     for space_i, space in enumerate(IndexSpace.instances):
         print "%s: `%s`" % (space_i, space)
         for model_indexer_i, pair in enumerate(space.get_indexers().items()):
             model, indexers = pair
             print "  %s.%s: `%s`" % (space_i, model_indexer_i, utils.model_name(model))
             for indexer_i, indexer in enumerate(indexers):
                 print "    %s.%s.%s: `%s`" % (space_i, model_indexer_i, indexer_i, indexer)
示例#7
0
    def do_use(self, index):
        """
        Changes current index
        """
        space, model, indexer, path = self._get_indexer(index)

        if indexer is not None:
            self._current_index = indexer
            self._current_index_path = path

            print "Using `%s:%s:%s` index." % (space, utils.model_name(model),
                                               indexer)
示例#8
0
    def create_default_indexer(self, model):
        tags = []
        fields = []

        for field in model._meta.fields:
            if isinstance(field, models.TextField):
                fields.append(field.attname)
            else:
                tags.append((field.name, field.attname))

        return new.classobj(
            "Default%sIndexer" % utils.model_name(model).replace('.', ''),
            (Indexer, ), {
                "tags": tags,
                "fields": fields
            })
    def do_usecomposite(self, indexes):
        """
        Changes current index to composition of given indexers
        """
        from djapian.indexer import CompositeIndexer

        indexers = []
        for index in indexes.split(' '):
            indexers.append(self._get_indexer(index.strip()))

        self._current_index = CompositeIndexer(*[i[2] for i in indexers])

        print "Using composition of:"
        for indexer in indexers:
            space, model, indexer = indexer
            print "  `%s:%s:%s`" % (space, utils.model_name(model), indexer)
        print "indexes."
示例#10
0
    def do_usecomposite(self, indexes):
        """
        Changes current index to composition of given indexers
        """
        from djapian.indexer import CompositeIndexer

        indexers = []
        for index in indexes.split(' '):
            indexers.append(self._get_indexer(index.strip()))

        self._current_index = CompositeIndexer(*[i[2] for i in indexers])

        print "Using composition of:"
        for indexer in indexers:
            space, model, indexer = indexer
            print "  `%s:%s:%s`" % (space, utils.model_name(model), indexer)
        print "indexes."
示例#11
0
文件: space.py 项目: heldergg/dre
    def create_default_indexer(self, model):
        tags = []
        fields = []

        for field in model._meta.fields:
            if isinstance(field, models.TextField):
                fields.append(field.attname)
            else:
                tags.append((field.name, field.attname))

        return new.classobj(
            "Default%sIndexer" % utils.model_name(model).replace('.', ''),
            (Indexer,),
            {
                "tags": tags,
                "fields": fields
            }
        )
示例#12
0
    def do_list(self, arg):
        """
        Lists all available indexes with their ids
        """
        print "Installed spaces/models/indexers:"

        def _is_selected(space, model=None, index=None):
            selected = [b for b in (space, model, index) if b is not None]
            return len(
                [1 for c, s in zip(self._current_index_path, selected) if c == s]
            ) == len(selected)

        for space_i, space in enumerate(IndexSpace.instances):
            print (_is_selected(space_i) and '* ' or '- ') + '%s: `%s`' % (space_i, space)
            for model_indexer_i, pair in enumerate(space.get_indexers().items()):
                model, indexers = pair
                print (_is_selected(space_i, model_indexer_i) and '  * ' or '  - ') +\
                        "%s.%s: `%s`" % (space_i, model_indexer_i, utils.model_name(model))
                for indexer_i, indexer in enumerate(indexers):
                    print (_is_selected(space_i, model_indexer_i, indexer_i) and '    * ' or '    - ') +\
                        "%s.%s.%s: `%s`" % (space_i, model_indexer_i, indexer_i, indexer)
示例#13
0
    def do_list(self, arg):
        """
        Lists all available indexes with their ids
        """
        print "Installed spaces/models/indexers:"

        def _is_selected(space, model=None, index=None):
            selected = [b for b in (space, model, index) if b is not None]
            return len([
                1 for c, s in zip(self._current_index_path, selected) if c == s
            ]) == len(selected)

        for space_i, space in enumerate(IndexSpace.instances):
            print(_is_selected(space_i) and '* '
                  or '- ') + '%s: `%s`' % (space_i, space)
            for model_indexer_i, pair in enumerate(
                    space.get_indexers().items()):
                model, indexers = pair
                print (_is_selected(space_i, model_indexer_i) and '  * ' or '  - ') +\
                        "%s.%s: `%s`" % (space_i, model_indexer_i, utils.model_name(model))
                for indexer_i, indexer in enumerate(indexers):
                    print (_is_selected(space_i, model_indexer_i, indexer_i) and '    * ' or '    - ') +\
                        "%s.%s.%s: `%s`" % (space_i, model_indexer_i, indexer_i, indexer)
示例#14
0
 def __repr__(self):
     return "<Hit: model=%s pk=%s, percent=%s rank=%s weight=%s>" % (
         utils.model_name(
             self.model), self.pk, self.percent, self.rank, self.weight)