最高のDjango検索アプリは何ですか?[閉まっている]


110

私は検索機能を必要とするDjangoプロジェクトを構築しdjango.contrib.searchています。ができるまで、検索アプリを選択する必要があります。それで、どれが最高ですか?「最高」とは…

  • インストール/セットアップが簡単
  • Djangoまたは少なくともPython対応のAPIがある
  • かなり複雑な検索を実行できる

聞いたことがあるアプリをいくつか紹介します。知っているアプリがあれば、他のアプリを提案してください。

また、インデックスに登録したいデータの一部はサイトメンバー専用であり、公開しないでください。



通常、「最高」のようなものはかなり主観的ですが、受け入れられた回答が示すように、djangoには実際に「最高」の検索アプリが1つあります。

私が完全にdjangoを誤解しない限り、これはまだライブラリリクエストであり、トピック外です。
Jeffrey Bosboom、2015年

回答:


104

Haystack Searchをチェックしてください。現在、XapianSolrWhooshをサポートする新しいモデルベースの検索抽象化レイヤーです。十分にサポートされ、文書化されているようです。


3
Haystackは活発に開発中であり、著者はいつでもメーリングリストから入手できます。
トム

2
djangosearchプロジェクトから:「このプロジェクトは現在活発に開発されていません。複数の検索エンジンで動作するdjango全文検索アプリケーションを探している場合は、haystackをチェックしてください。Solrに固有の何かを探している場合は、ソランゴを試したい。」
Esteban Feldman、

Haystackはかなり長い間サポートされていたとしても、ひどいものでした。この時点でそれを避けることをお勧めします。多分彼らは将来的にそれを修正するでしょうが、今は悪い場所にあります。
アーロンシフ2013

私の意見では、最新バージョンのhaystack(2.1)は、私のpython 2.7バージョンのdjango 1.4ではまったく機能しません。
クリスホークス2013

19

ジャスティン、私は最初にdjangosearchを試してみます:Jacob Kaplan-Moss(Djangoのリード開発者)がそれに取り組んでいます。

潜在的な危険:

  • ホームページは、APIが完全に安定していない可能性があることを警告しています

潜在的なメリット:

  • 「長期的な目標は、これがになることdjango.contrib.searchです。」

45
このページには、「このプロジェクトは現在活発に開発されていません。複数の検索エンジンで動作するdjango全文検索アプリケーションを探している場合は、Haystackをチェックしてください。」と書かれています。
Tomas Andrle 2009年

18

他の多くの人と同じように、私は同じことを探しています。django.contrib.searchがまもなく追加されることを期待しましょう。

それまでの間、これは私が見つけたものです:

私には、ほとんどが非常に複雑に見え、率直に言って、実装するのは少し困難です。私はあなたがこれらについてどう思うか知りたいです。



8

全文検索と集約にはSphinxをお勧めします。本番環境で使用するにはdjango-sphinxで十分です。Sphinxが最もリソースを消費せず、ドキュメントのインデックス作成と検索を行う最も高速な方法であり、django-sphinxがSphinxクライアントの優れたラッパーであることがわかりました。

たとえば、特定のタグまたは特定の作成者(またはその両方)が検索に一致したドキュメントの数を表示する場合は、集約によるグループ化が特に便利です。メモリ内の属性の更新も、特に削除された記事をすぐに削除するのに便利でした。


6

ガース、ありがとう。私はdjangosearchが公式のDjango検索になりたいと思っていましたが、ドキュメントが見つからなかったため、それを使用することをためらっていました。幸いにも、私が今まで見たことのないREADMEがsubversionにあり、それによってAPIがとてもクールに見えます。

# set up the model
class Event(models.Model):
    title = models.CharField(max_length=255)
    date = models.DateField()
    is_outdoors = models.BooleanField()

    index = djangosearch.ModelIndex(text=['title'], 
                                    additional=['date', 'is_outdoors'])

# run a search
results = Event.index.search("django conference")

6

私は、内部アプリにとって大したことのない非常に迅速なソリューションを必要としていました。

Djangoに検索を追加する」という記事がすぐに見つかりました。

明らかに、Haystackのような実際のプロジェクトの速度、スケーラビリティ、機能に欠けていますが、これは設定が簡単で、キーワードAND検索以外は何も必要ありません。



2

ここのみんながdjango-xappyを逃したようです

Djangoの既存のすべての検索アドオンをすばやく評価したところ、これが最も柔軟で使いやすいことがわかりました。いくつかの場所では端が粗いですが、それでもDjangoプロジェクト内でXapian検索エンジンの機能を使用する最良の方法です。



1

インデックスに登録するデータが大量にあるか、トラフィックが多いと予想される場合は、Solrなどの外部検索エンジンを使用することをお勧めします。これにより、シェアードナッシングのアプローチを維持、サイトコンポーネントを個別にスケーリングできるようになります。


1

ジャピアンに一言叫ぶ必要があると思います。

それは堅実です...ソースの配布をプルダウンして、中を覗いてみてください。一流のコード、それほど多くのコメントはありません。

それはまだ若いソフトウェアプロジェクトですが、djangoコミュニティはこのプロジェクトの背後に重きを置くべきだと思います。


0

ジョーありがとう、

Tsearch2とカスタムpostgresアダプターを使用することにしました。Tsearch2を実行するために追加のプロセスは必要ありません。これは、メモリが限られたWebFactionホスティングを使用しているため便利でした...まだ完全には完了していませんが、良い解決策のようです...


0

純粋なPython外部検索エンジンWhooshを使用して、 'Python'の頭脳でうまく機能するDjooshを見つけました。


0

サードパーティの検索エンジンを使用する場合は、Yahoo BOSSdjango-bosssearchをお勧めします。

Yahoo BOSSは有料サービスですが、サーバー上で他の検索ソフトウェアをセットアップして維持する手間が省けます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.