コード例 #1
0
ファイル: query.py プロジェクト: glitchdotcom/pyes
    def add_query(self,
                  field,
                  text,
                  type="boolean",
                  slop=0,
                  fuzziness=None,
                  prefix_length=0,
                  max_expansions=2147483647,
                  operator="or",
                  analyzer=None):

        if type not in self._valid_types:
            raise QueryError(
                "Invalid value '%s' for type: allowed values are %s" %
                (type, self._valid_types))
        if operator not in self._valid_operators:
            raise QueryError(
                "Invalid value '%s' for operator: allowed values are %s" %
                (operator, self._valid_operators))

        query = {'type': type, 'query': text}
        if slop != 0:
            query["slop"] = slop
        if fuzziness is not None:
            query["fuzziness"] = fuzziness
        if slop != 0:
            query["prefix_length"] = prefix_length
        if max_expansions != 2147483647:
            query["max_expansions"] = max_expansions
        if operator:
            query["operator"] = operator

        self.queries[field] = query
コード例 #2
0
ファイル: query.py プロジェクト: dbuxton/pyes
    def serialize(self):
        data = {}

        if self.boost != 1.0:
            data["boost"] = self.boost
        filters = {}
        if len(self.filters) == 1:
            filters.update(self.filters[0].serialize())
        else:
            from pyes import ANDFilter
            filters.update(ANDFilter(self.filters).serialize())
        if not filters:
            raise QueryError("A filter is required")
        data['filter'] = filters
        return {self._internal_name: data}
コード例 #3
0
ファイル: query.py プロジェクト: crankycoder/zamboni-lib
    def serialize(self):

        if self.type not in self._valid_types:
            raise QueryError(
                "Invalid value '%s' for type: allowed values are %s" %
                (self.type, self._valid_types))
        if self.operator not in self._valid_operators:
            raise QueryError(
                "Invalid value '%s' for operator: allowed values are %s" %
                (self.operator, self._valid_operators))

        options = {'type': self.type, "query": self.text}
        if self.slop != 0:
            options["slop"] = self.slop
        if self.fuzziness is not None:
            options["fuzziness"] = self.fuzziness
        if self.slop != 0:
            options["prefix_length"] = self.prefix_length
        if self.max_expansions != 2147483647:
            options["max_expansions"] = self.max_expansions
        if self.operator:
            options["operator"] = self.operator

        return {self._internal_name: options}