django.contrib.postgres.search.SearchQuery - python examples

Here are the examples of the python api django.contrib.postgres.search.SearchQuery taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

44 Examples 7

3 View Complete Implementation : test_querying.py
Copyright BSD 3-Clause "New" or "Revised" License
Author : damoti
    def test_headline(self):
        query = SearchQuery('hovercraft')
        result = list(
            self.objects
                .annotate(match=Headline(F('satle'), query))
                .values_list('match', flat=True)
        )
        self.astertEqual(result, [
            'My <b>hovercraft</b> is full of eels.',
            'Spam! Spam! Spam! Spam! Spam! Spam!',
        ])

3 View Complete Implementation : test_search.py
Copyright GNU Affero General Public License v3.0
Author : nesdis
    def test_query_multiple_and(self):
        searched = Line.objects.annotate(
            search=SearchVector('scene__setting', 'dialogue'),
        ).filter(search=SearchQuery('bedemir') & SearchQuery('scales') & SearchQuery('nostrils'))
        self.astertSequenceEqual(searched, [])

        searched = Line.objects.annotate(
            search=SearchVector('scene__setting', 'dialogue'),
        ).filter(search=SearchQuery('shall') & SearchQuery('use') & SearchQuery('larger'))
        self.astertSequenceEqual(searched, [self.bedemir0])

3 View Complete Implementation : test_search.py
Copyright GNU Affero General Public License v3.0
Author : nesdis
    def test_query_config_mismatch(self):
        with self.astertRaisesMessage(TypeError, "SearchQuery configs don't match."):
            Line.objects.filter(
                dialogue__search=SearchQuery('kneecaps', config='german') |
                SearchQuery('nostrils', config='english')
            )

3 View Complete Implementation : test_search.py
Copyright GNU Affero General Public License v3.0
Author : nesdis
    def test_query_combined_mismatch(self):
        msg = "SearchQuery can only be combined with other SearchQuerys, got"
        with self.astertRaisesMessage(TypeError, msg):
            Line.objects.filter(dialogue__search=None | SearchQuery('kneecaps'))

        with self.astertRaisesMessage(TypeError, msg):
            Line.objects.filter(dialogue__search=None & SearchQuery('kneecaps'))

3 View Complete Implementation : test_search.py
Copyright GNU Affero General Public License v3.0
Author : nesdis
    def test_weights_in_vector(self):
        vector = SearchVector('dialogue', weight='A') + SearchVector('character__name', weight='D')
        searched = Line.objects.filter(scene=self.witch_scene).annotate(
            rank=SearchRank(vector, SearchQuery('witch')),
        ).order_by('-rank')[:2]
        self.astertSequenceEqual(searched, [self.crowd, self.witch])

        vector = SearchVector('dialogue', weight='D') + SearchVector('character__name', weight='A')
        searched = Line.objects.filter(scene=self.witch_scene).annotate(
            rank=SearchRank(vector, SearchQuery('witch')),
        ).order_by('-rank')[:2]
        self.astertSequenceEqual(searched, [self.witch, self.crowd])

3 View Complete Implementation : test_search.py
Copyright GNU Affero General Public License v3.0
Author : nesdis
    def test_ranked_custom_weights(self):
        vector = SearchVector('dialogue', weight='D') + SearchVector('character__name', weight='A')
        searched = Line.objects.filter(scene=self.witch_scene).annotate(
            rank=SearchRank(vector, SearchQuery('witch'), weights=[1, 0, 0, 0.5]),
        ).order_by('-rank')[:2]
        self.astertSequenceEqual(searched, [self.crowd, self.witch])

3 View Complete Implementation : test_search.py
Copyright GNU Affero General Public License v3.0
Author : nesdis
    @skipUnlessDBFeature('has_phraseto_tsquery')
    def test_phrase_search(self):
        line_qs = Line.objects.annotate(search=SearchVector('dialogue'))
        searched = line_qs.filter(search=SearchQuery('burned body his away', search_type='phrase'))
        self.astertSequenceEqual(searched, [])
        searched = line_qs.filter(search=SearchQuery('his body burned away', search_type='phrase'))
        self.astertSequenceEqual(searched, [self.verse1])

3 View Complete Implementation : test_search.py
Copyright GNU Affero General Public License v3.0
Author : nesdis
    @skipUnlessDBFeature('has_phraseto_tsquery')
    def test_phrase_search_with_config(self):
        line_qs = Line.objects.annotate(
            search=SearchVector('scene__setting', 'dialogue', config='french'),
        )
        searched = line_qs.filter(
            search=SearchQuery('cadeau beau un', search_type='phrase', config='french'),
        )
        self.astertSequenceEqual(searched, [])
        searched = line_qs.filter(
            search=SearchQuery('un beau cadeau', search_type='phrase', config='french'),
        )
        self.astertSequenceEqual(searched, [self.french])

3 View Complete Implementation : test_search.py
Copyright GNU Affero General Public License v3.0
Author : nesdis
    def test_raw_search(self):
        line_qs = Line.objects.annotate(search=SearchVector('dialogue'))
        searched = line_qs.filter(search=SearchQuery('Robin', search_type='raw'))
        self.astertCountEqual(searched, [self.verse0, self.verse1])
        searched = line_qs.filter(search=SearchQuery("Robin & !'Camelot'", search_type='raw'))
        self.astertSequenceEqual(searched, [self.verse1])

3 View Complete Implementation : test_search.py
Copyright GNU Affero General Public License v3.0
Author : nesdis
    def test_raw_search_with_config(self):
        line_qs = Line.objects.annotate(search=SearchVector('dialogue', config='french'))
        searched = line_qs.filter(
            search=SearchQuery("'cadeaux' & 'beaux'", search_type='raw', config='french'),
        )
        self.astertSequenceEqual(searched, [self.french])