django_sphinx_db

ソフトウェアのスクリーンショット:
django_sphinx_db
ソフトウェアの詳細:
バージョン: 0.1-3
日付のアップロード: 20 Feb 15
開発者: Ben Timby
ライセンス: 無料
人気: 0

Rating: 3.0/5 (Total Votes: 2)

django_sphinx_dbはSphinxQL経由でスフィンクスとの相互作用を可能にするシンプルなDjangoのデータベースバックエンドです。それは基本的にスフィンクスのためにいくつかの変更をデフォルトのDjangoのMySQLバックエンドである。
SphinxQLはスフィンクスのsearchdがサポートするMySQLのクローンモードです。それはあなたが定期的に古いSQL構文を経由してインデックスを照会することができます。あなたはRT(リアルタイム)インデックスを使用している場合は、追加して、インデックス内のドキュメントを更新することができます。
このバックエンドはDjangoのsettings.pyでデータベースとしてconfiguedされることを意図している。
このパッケージには、これを可能にするためにManagerクラス、SQLCompilerスイートとサポートコードを提供しています。
の使用法
まず第一に、あなたは、Djangoの設定でデータベース接続を定義する必要があります。また、スフィンクスデータベースルータをインストールし、INSTALLED_APPSリストにdjango_sphinx_dbを追加する必要があります。
#django_sphinx_dbをインストールします。
INSTALLED_APPS + =( 'django_sphinx_db'、)
#これは、データベース内のスフィンクスサーバーの名前です。
SPHINX_DATABASE_NAME = 'スフィンクス」
#スフィンクスへの接続を定義
データベース= {
  'デフォルト':{
 #デフォルトのデータベース接続がここに...
 }、
  SPHINX_DATABASE_NAME:{
  'ENGINE': 'django_sphinx_db.backend.sphinx」、
 #データベース名は重要ではありません。
  'NAME': ''、
 #ユーザ名やパスワードはありません。
  'USER': ''、
  'PASSWORD': ''、
 #は、ローカルホストを使用しないでください、これはUDSの代わりにTCPを使用してになります...
  'HOST': '127.0.0.1'、
  'PORT': '9306'、
 }、
}
#...とルートに応じて...
DATABASE_ROUTERS =(
  'django_sphinx_db.routers.SphinxRouter」、
) `` `
その後SphinxModelから派生モデルを定義。いつものように、モデルはmodels.pyに配置されます。
django_sphinx_db.backend.modelsからSphinxModel、SphinxFieldをインポート
クラスMyIndex(SphinxModel):
 クラスのメタ:
 この次のビットが重要である#、あなたがDjangoは管理しない
 #このモデルのテーブル。
 管理さ=偽
 名= SphinxField()
 コンテンツ= SphinxField()
 日付= models.DateTimeField()
 サイズ= models.IntegerField()
のスフィンクスの設定
今、あなたはあなたのインデックスの設定ファイルを生成する必要があります。管理コマンドは、適切な構成にモデル定義を変換するために設けられている。
  Pythonのmanage.py syncsphinx >> /etc/sphinx.conf
  VI /etc/sphinx.conf
生成された設定ファイルは、良いスタートであるべきしかし、あなたは[スフィンクスの設定参照](http://sphinxsearch.com/docs/2.0.2/confgroup-index.html)に対する構成を確認するよう促されている。
のスフィンクスとDjangoのORMを使用して、
これで、DjangoのORMを使用して、リアルタイムのインデックスを照会し、管理することができます。あなたが挿入し、次の方法を使用して索引内の文書を更新することができます。以下の例は、プレーンテキストとしてファイルの内容を読み取るための[フルテキストライブラリ](https://github.com/btimby/fulltext)を使用します。
輸入OS、時間、フルテキスト
#インデックスにドキュメントを追加します。
パス= 'resume.doc」
ST =でos.stat(パス)
MyIndex.objects.create(
 名=パス、
 コンテンツ= fulltext.get(パス、 '')、
 サイズ= st.st_size、
 日付=カテゴリに設定( '%Y-%M-%D%H:%のM:%S'は、time.localtime(st.st_mtime))、

#インデックス内のドキュメントを更新
DOC = MyIndex.objects.get(PK = 1)
doc.content = fulltext.get(パス、 '')
doc.size = st.st_size
doc.date =カテゴリに設定( '%Y-%M-%D%H:%のM:%S'、time.localtime(st.st_mtime))
doc.save()
あなたは、Djangoの検索演算子を使用してフルテキストクエリを実行することができます。詳細については、Djangoのドキュメントを参照してください。
MyIndex.objects.filter(content__search = 'foobarに')
問合せは、尊敬されているスフィンクスに直接通過したので、スフィンクスは、クエリの構文を拡張している。
のユニットテスト
Djangoのためのスフィンクスバックエンドはcreate_test_dbとdestroy_test_dbの呼び出しを無視します。スフィンクスデータベースが構成されている場合、これらのコールは、テストを実行してからあなたを防ぐこと、失敗します。しかし、これは任意に構成スフィンクスデータベースがテスト中に使用されることを意味する。限り、あなたはこのことを考慮して、あなたのテストを書くように、問題はないはずです。あなたはテスト実行中に異なるデータベース接続にクエリをリダイレクトするTEST_NAMEデータベース接続パラメータを使用することができますことを忘れないでください。

の要件の:ます。

  • パイソンます。
  • ジャンゴます。

へのコメント django_sphinx_db

コメントが見つかりません
コメントを追加
画像をオンにする!