Example #1
0
class SearchForm(forms.Form):
    MODE_CHOICES = ((0, u"任意匹配"), (1, u"全部匹配"), (2, u"高级搜索"))

    word = forms.CharField(label=u"关键词", required=False, initial="")
    mode = forms.ChoiceField(label=u"模式", required=False, choices=MODE_CHOICES, initial=0)

    def __init__(self, *args, **kwargs):
        super(SearchForm, self).__init__(*args, **kwargs)
        self.search = SphinxQuerySet(index="*")

    def clean_word(self):
        word = self.cleaned_data["word"].strip()
        if len(word) > 0:
            return word
        return None

    def clean_mode(self):
        mode = int(self.cleaned_data["mode"] or 0)
        return {0: "SPH_MATCH_ANY", 1: "SPH_MATCH_ALL", 2: "SPH_MATCH_EXTENDED2"}[mode]

    def is_valid(self):
        return super(SearchForm, self).is_valid() and self.cleaned_data["word"]

    def query(self):
        return self.search.query(self.cleaned_data["word"]).set_options(passages=True, mode=self.cleaned_data["mode"])
Example #2
0
class SearchForm(forms.Form):
    MODE_CHOICES = (
        (0, u'任意匹配'),
        (1, u'全部匹配'),
        (2, u'高级搜索'),
    )

    word = forms.CharField(label=u'关键词', required=False, initial='')
    mode = forms.ChoiceField(label=u'模式',
                             required=False,
                             choices=MODE_CHOICES,
                             initial=0)

    def __init__(self, *args, **kwargs):
        super(SearchForm, self).__init__(*args, **kwargs)
        self.search = SphinxQuerySet(index='*')

    def clean_word(self):
        word = self.cleaned_data['word'].strip()
        if len(word) > 0:
            return word
        return None

    def clean_mode(self):
        mode = int(self.cleaned_data['mode'] or 0)
        return {
            0: 'SPH_MATCH_ANY',
            1: 'SPH_MATCH_ALL',
            2: 'SPH_MATCH_EXTENDED2'
        }[mode]

    def is_valid(self):
        return super(SearchForm, self).is_valid() and self.cleaned_data['word']

    def query(self):
        return self.search.query(self.cleaned_data['word']).set_options(
            passages=True, mode=self.cleaned_data['mode'])
Example #3
0
 def __init__(self, *args, **kwargs):
     super(SearchForm, self).__init__(*args, **kwargs)
     self.search = SphinxQuerySet(index="*")
Example #4
0
 def __init__(self, *args, **kwargs):
     super(SearchForm, self).__init__(*args, **kwargs)
     self.search = SphinxQuerySet(index='*')