これまでの話:
検索バックエンドとして Xapian を使用することに決めました。Xapian には、私が探していたすべての検索エンジン機能があり、Unicode とステミングについて知っており、依存関係がほとんどなく、その上に肥大化したアプリ サーバーをインストールする必要がないためです。
Django と Haystack (さらに xapian-haystack、Haystack を Xapian に結び付けるためのバックエンド グルー コード) を試してみました。動作しませんでした。django-haystack プロジェクトも xapian-haystack プロジェクトも、実際に連携して動作するバージョンの組み合わせを提供していません。両方のプロジェクトの MASTER は Xapian からエラーを生成するため、まったく安定していません。Haystack 1.0.1 と xapian-haystack 1.0.x/1.1.0 は API 互換ではありません。さらに、Haystack 1.0.1 と xapian-haystack MASTER の最小限の作業インストールでは、django-haystack または xapian-haystack のいずれかでエラーが発生するため、複雑なクエリを実行しても結果はゼロになります (私はこれを二重に検証しました)。実際には非常に単純なケースをテストし、エッジケースはまったくテストしません。
ジャピアンをやってみた。ソースコードはスペルミスでいっぱいです (コメントではなく、変数名に注意してください)。ドキュメントもあいまいさと古い情報でいっぱいで、インストールが機能することはありません。当然のことながら、ユーザーが機能について尋ねることはめったにありませんが、そもそもそれを機能させる方法について尋ねます。
次に、Solr (Java 環境と Tomcat をインストールすると頭痛がします。マシンには RAM と CPU の制約があります)、または Lucene (頭痛は少し軽減されますが、それでも) を調べます。
宣伝どおりに機能するかどうかわからないソリューションにさらに時間を費やす前に、知りたいことがあります: Django で実際に動作する実際の検索ソリューションを手に入れた人はいますか? 私は真剣です。「大部分が解決された大きな問題」について読んでいて、実際には、これらの「ほとんど解決された問題」を扱っているすべてのブロガーが基本的なインストールを通過したことがないため、ソースコードから機能するインストールを取得できないことに気付くのは本当にイライラします公式チュートリアルをコピペ。
したがって、要件は次のとおりです。
- 1 回のクエリで 10 ~ 100 語を検索できる必要があります
- + (用語が存在する必要がある) および - (用語が存在してはならない)、AND/OR を処理する必要があります。
- 任意のグループ化を処理する必要があります (つまり、AND/OR を囲む括弧)
- 全文検索の前または後に Django-ORM フィルタリングを許可する必要があります (つまり、Django が認識しているフィルターの完全なセットを使用した結果の前処理/後処理)
- または、結果セットを一括フェッチして QuerySet に変換する機能が必要です。
- マシン上で軽くする必要があるため、巨大な JVM および Java ベースのアプリサーバーをインストールしないことが望ましい
これを行うものはありますか?事例証拠や、それが機能するはずだと主張するブログ投稿への言及には興味がありません。現実の世界で、実際の条件の下で、実際のクエリを使用して、完全に機能するセットアップを実際に持っている人から聞いてみたいです。
編集:
繰り返しますが、誰かが、どこかで、特定されていないプロパティで動作するインストールを実行しているという事例証拠にはあまり興味がありません。私はすでにそこに行き、すべてのブログ投稿、メーリング リストを読み、作成者に連絡しましたが、実際のシナリオの実際の実装に関しては、宣伝どおりに機能するものはありませんでした。
また、以下のユーザーもその点を指摘しましたが、プロジェクトの TCO を考慮すると、ベンダーが不明な数のスペシャリストをモンキーにパラシュートで降ろした後、誰かが、どこかでそれをやってのけることができたという話には絶対に興味がありません。 -どこにも文書化されていない特定のドメイン知識でインストール全体にパッチを当てます。
したがって、本格的な検索の最小要件 (上記の要件を参照) を実際に満たしているインストールが機能していると主張する場合は、実際に問題を解決する Django の検索ソリューションの恩恵を受けることができるように、次の情報を提供してください。 :
- 正確な Linux ディストリビューション、リリース バージョン、
- Haystack (または同等のもの) の正確なリリース バージョンと検索バックエンドのリリース バージョン、
- 検索エンジンの正確なリリース バージョン
- 上記の最小要件が満たされるように、インストールがセットアップされた方法ですべてのコンポーネントを正確にセットアップする方法について、公に (!) 入手可能なドキュメント。
ありがとうございました。