1

アプリにモジュール全体の検索を追加しようとしていますが、haystack-search が見つかりました。検索情報を保存するためにwhooshを使用しました。

ドキュメントに記載されているように検索を構成しましたが、すでに結果を見つけることができます。

私が抱えている問題は、メールアドレス (「test@testdomain.com」) を格納するフィールドです。「testdomain」を検索しても結果は得られませんが、「tesdomain.com」を検索するといくつかの結果が得られます。ここで、「testdomain」と入力したときに結果 (「testdomain.com」と入力したときに得られる) を取得したいと考えています。これを行う方法はありますか?

誰かが haystack のメーリングリストに投稿したことがありますか? 私はgoogle-groupのメンバーでも投稿できません。

よろしくマーティン

4

1 に答える 1

1

今、私は問題の答えを持っています。haystack に同梱されている標準検索は、部分文字列による検索をサポートしていません。

haystacksearch を使用する検索用の独自のアプリ (mysearch) を作成します

独自の SearchForm (mysearch/forms.py) を作成する必要があります。

from django import forms
from haystack.forms import ModelSearchForm
from haystack.query import SearchQuerySet

class AutocompleteSearchForm(ModelSearchForm):

  def search(self):
    if not self.is_valid():
      return self.no_query_found()

    if not self.cleaned_data.get('q'):
      return self.no_query_found()

    sqs = self.searchqueryset.filter(autocompletetext=self.cleaned_data.get('q'))

    sqs = sqs.models(*self.get_models())

    if self.load_all:
      sqs = sqs.load_all()

    return sqs

次に、独自の SearchForm (mysearch/urls.py) を使用して独自の URL ルートを作成する必要があります。

from django.conf.urls.defaults import *
from haystack.forms import ModelSearchForm
from haystack.query import SearchQuerySet
from haystack.views import SearchView
from forms import AutocompleteSearchForm

sqs = SearchQuerySet()

# Without threading...
urlpatterns = patterns('haystack.views',
  url(r'^$', SearchView(searchqueryset=sqs, form_class=AutocompleteSearchForm), name='haystack_search'),
)

プロジェクトで urls.py を使用

url(r"^search/", include("mysearch.urls", namespace="Search")),

それ以外の

url(r'^search/', include('haystack.urls', namespace="Search")),
于 2013-01-30T14:47:54.113 に答える