def _parse(self):
        query = self.preprocess_query(self.query)

        if self.syntax == "cloudsearch":
            self.bq = self.customize_query(query)
        elif self.syntax == "lucene":
            # For the most part, conversion to cloudsearch structured query syntax
            # is not needed, except for fielded searches using ":" and boolean
            # searches using AND/OR/NOT (in order to avoid transforming the query)
            lucene_operators = (':', ' AND ', ' OR ', ' NOT ')
            if (self.bypass_l2cs
                    and not any(op in query for op in lucene_operators)):
                self.q = query.encode('utf-8')
                self.bq = self.customize_query()
            else:
                bq = l2cs.convert(query, self.lucene_parser)
                self.converted_data = {
                    "syntax": "cloudsearch",
                    "converted": bq
                }
                self.bq = self.customize_query(bq)
        elif self.syntax == "plain":
            self.q = query.encode('utf-8')
            self.bq = self.customize_query()

        if not self.q and not self.bq:
            raise InvalidQuery
Example #2
0
    def _parse(self):
        if self.syntax == "cloudsearch":
            self.bq = self.customize_query(self.query)
        elif self.syntax == "lucene":
            bq = l2cs.convert(self.query, self.lucene_parser)
            self.converted_data = {"syntax": "cloudsearch", "converted": bq}
            self.bq = self.customize_query(bq)
        elif self.syntax == "plain":
            self.q = self.query.encode("utf-8")
            self.bq = self.customize_query()

        if not self.q and not self.bq:
            raise InvalidQuery
Example #3
0
    def _parse(self):
        if self.syntax == "cloudsearch":
            self.bq = self.customize_query(self.query)
        elif self.syntax == "lucene":
            bq = l2cs.convert(self.query, self.lucene_parser)
            self.converted_data = {"syntax": "cloudsearch", "converted": bq}
            self.bq = self.customize_query(bq)
        elif self.syntax == "plain":
            self.q = self.query.encode('utf-8')
            self.bq = self.customize_query()

        if not self.q and not self.bq:
            raise InvalidQuery
Example #4
0
 def _run(self, start=0, num=1000, _update=False):
     """Run the search against self.query"""
     q = None
     if self.syntax == "cloudsearch":
         self.bq = self.customize_query(self.query)
     elif self.syntax == "lucene":
         bq = l2cs.convert(self.query, self.lucene_parser)
         self.converted_data = {"syntax": "cloudsearch", "converted": filters._force_unicode(bq)}
         self.bq = self.customize_query(bq)
     elif self.syntax == "plain":
         q = self.query
     if g.sqlprinting:
         g.log.info("%s", self)
     return self._run_cached(q, self.bq, self.sort, start=start, num=num, _update=_update)
Example #5
0
 def _run(self, start=0, num=1000, _update=False):
     '''Run the search against self.query'''
     q = None
     if self.syntax == "cloudsearch":
         self.bq = self.customize_query(self.query)
     elif self.syntax == "lucene":
         bq = l2cs.convert(self.query, self.lucene_parser)
         self.converted_data = {"syntax": "cloudsearch",
                                "converted": filters._force_unicode(bq)}
         self.bq = self.customize_query(bq)
     elif self.syntax == "plain":
         q = self.query
     if g.sqlprinting:
         g.log.info("%s", self)
     return self._run_cached(q, self.bq, self.sort, start=start, num=num,
                             _update=_update)
Example #6
0
 def _run(self, start=0, num=1000, _update=False):
     '''Run the search against self.query'''
     q = None
     if self.syntax == "cloudsearch":
         self.bq = self.customize_query(self.query)
     elif self.syntax == "lucene":
         bq = l2cs.convert(self.query, self.lucene_parser)
         self.converted_data = {"syntax": "cloudsearch",
                                "converted": bq}
         self.bq = self.customize_query(bq)
     elif self.syntax == "plain":
         q = self.query.encode('utf-8')
     if g.sqlprinting:
         g.log.info("%s", self)
     return self._run_cached(q, self.bq.encode('utf-8'), self.sort,
                             self.faceting, start=start, num=num,
                             _update=_update)
Example #7
0
 def _run(self, _update=False):
     '''Run the search against self.query'''
     q = None
     if self.syntax == "cloudsearch":
         self.bq = self.customize_query(self.query)
     elif self.syntax == "lucene":
         bq = l2cs.convert(self.query, self.lucene_parser)
         self.converted_data = {"syntax": "cloudsearch", "converted": bq}
         self.bq = self.customize_query(bq)
     elif self.syntax == "plain":
         q = self.query.encode('utf-8')
         self.bq = self.customize_query()
     if g.sqlprinting:
         g.log.info("%s", self)
     return self._run_cached(q,
                             self.bq.encode('utf-8'),
                             self.sort,
                             self.rank_expressions,
                             self.faceting,
                             start=self.start,
                             num=self.num,
                             _update=_update)
Example #8
0
    def _parse(self):
        query = self.preprocess_query(self.query)

        if self.syntax == "cloudsearch":
            self.bq = self.customize_query(query)
        elif self.syntax == "lucene":
            # For the most part, conversion to cloudsearch structured query syntax
            # is not needed, except for fielded searches using ":" and boolean
            # searches using AND/OR/NOT (in order to avoid transforming the query)
            lucene_operators = (":", " AND ", " OR ", " NOT ")
            if self.bypass_l2cs and not any(op in query for op in lucene_operators):
                self.q = query.encode("utf-8")
                self.bq = self.customize_query()
            else:
                bq = l2cs.convert(query, self.lucene_parser)
                self.converted_data = {"syntax": "cloudsearch", "converted": bq}
                self.bq = self.customize_query(bq)
        elif self.syntax == "plain":
            self.q = query.encode("utf-8")
            self.bq = self.customize_query()

        if not self.q and not self.bq:
            raise InvalidQuery
Example #9
0
 def test_unicode3(self):
     '''Result of l2cs.convert should be unicode, part 2'''
     result = l2cs.convert(u'foo:\u0ca0_\u0ca0', self.parser)
     self.assertIsInstance(result, unicode)
Example #10
0
 def test_unicode4(self):
     '''Result of l2cs.convert should be unicode'''
     result = l2cs.convert(u'foo:bar', self.parser)
     self.assertIsInstance(result, unicode)
Example #11
0
 def test_unicode3(self):
     '''Result of l2cs.convert should be unicode, part 2'''
     result = l2cs.convert(u'foo:\u0ca0_\u0ca0', self.parser)
     self.assertIsInstance(result, unicode)
Example #12
0
 def test_unicode4(self):
     '''Result of l2cs.convert should be unicode'''
     result = l2cs.convert(u'foo:bar', self.parser)
     self.assertIsInstance(result, unicode)