問題タブ [django-haystack]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django - Haystackはすべてのアイテムにインデックスを付けるわけではありません
全文検索にwhooshでdjangohaystackを使用しています。インデックスを作成するモデルは9つありますが、インデックス付きのエントリを検索すると、一部のモデルではすべてのモデルがインデックスに登録されていないか、すべてがインデックスに登録されていないようです。
これをdjangoシェルで試しますが、9つのモデルすべてにインデックスを付けると、一部のモデルで0が得られますが、一部のモデルだけにインデックスを付けると、すべてが得られます。
たとえば、正しくインデックス付けされたArticleモデルがあり、Articleだけのインデックスを再構築すると、1029個のアイテムがすべて見つかります。しかし、検索可能な9つのモデルすべてのインデックスを再構築すると、Articleアイテムの結果は0になります。
私が使用しているソフトウェアのバージョン:
- Python 2.6
- django 1.3
- 干し草の山1.1
- whoosh 1.8
インデックス付けされたモデルまたは見つかったアイテムの数に制限はありますか?何がそのような奇妙な行動を引き起こす可能性がありますか?似たようなことを経験したことがありますか?どのようにそれを解決しましたか?
django - HaystackがSolr管理コンソールで強調表示された結果を返さない
最近、私のdjangoモデルの1つを検索するためにsolrとhaystackを設定しました。haystackによって構築されたデフォルトのsolrスキーマを変更して、NGramTokenizerFactory
:を使用しようとしました。
データベースに1つまたは2つの単語エントリがあり、ユーザーのクエリと照合します。たとえば、「犬」というタイトルのオブジェクトと「猫」というタイトルのオブジェクトがあるとします。ユーザーが「dogcat」を検索した場合、そのクエリのdogオブジェクトとcatオブジェクトの両方を返します。
同様に、「my cool website」を検索すると、「website」のフィールドが返されます。
solr管理インターフェースを使用して、クエリが一致していることを確認してみました。ここではすべて問題ないようです
::問題は、haystackのデフォルトの検索インターフェースを使用して同じクエリを検索する場合です。
ご覧のとおり、結果は見つかりません。私はKeywordFactoryとさまざまなsolr構成を使用してみました。私が間違っていなければ、クエリは一致しているはずです。なぜ干し草の山が空になっているのかわかりません。
これがそのような検索を行うための最良の方法であるかどうかについてのヘルプ/提案をありがとう。
python - django-haystack のインストール
非常に簡単な質問: haystack の「開始」ドキュメントを調べました (whoosh を使用。pip を使用して python-whoosh と haystack の両方をインストールしました (初めて使用))。次のエラーが表示されます。
settings.py の INSTALLED_APPS に「haystack」がリストされているため、この解決策はうまくいかないようです。また、「import haystack」を実行してもインポート エラーが発生しないため、存在します。既存のプロジェクトと、このためだけに作成された新しいオブジェクトでこれを試しましたが、うまく動作しません。
ただし、後で haystack をインポートしpython manage.py shell
て試してみるhaystack.__version__
と、「AttributeError: 'module' object has no attribute ' version '」が表示されます。試してみると、同様のエラーが発生haystack.management
します。管理属性がありません。
それは私が見逃している非常に単純なものでなければなりません。これを読んでくれてありがとう!
django - django-haystack:インデックス付きDBではなく大きなSearchIndexを選択する
35個のフィールド(Char、Int、Bool、Dec、M2M、FK)を持つUserProfileモデルがあります。検索ビュー機能の一部として、フィールドの1つは全文検索を必要とし、残りの34フィールドは「高度な検索フィルタリング」を提供するために使用されます(__gte、__ lte、__ excat、__in、__ startswithを使用)。「検索」クエリでは、検索ビューの条件として5〜35個のフィールドを使用できます。
haystackを使用してSearchIndexを構築しており、現在35のフィールドすべてが追加されていますが、django ORM(?)をバイパスしているため、これは効果がないようです。
Filter Django Haystackからの回答はQuerySetのようになりますか?SearchIndexに単一の全文検索フィールドを格納し、残りの34個のフィルターフィールドに対してSearchQuerySetをdjangoのQuerySetと組み合わせることができることを示唆しています。次に、djangoモデルのこれらのフィールドの一部またはすべてでdb_index = Trueを使用しますか?この2段階のクエリマージアプローチを使用すると、何千もの結果にうまく対応できますか?
私のUserProfileモデルは300K〜2Mのエントリに成長する可能性があるため、このモデルにインデックスを付けるのに最適な方法を理解しようとしています。dbのインデックス作成と検索に慣れていないので、データベースを最適化するための最善の方法についての洞察を探しています。
django - Context Processor (Django 1.3) 内に ChoiceField を含む HayStack フォームを使用するにはどうすればよいですか?
次のような非常に単純な Haystack フォームがあります。
次に、次のようなコンテキスト プロセッサを用意します。
何らかの理由で、(Django 管理者を介して) 新しいカテゴリ オブジェクトを作成し、それを保存しても、Apache を再起動するまで、フォームの ChoiceField で使用されているカテゴリ タプルが更新されません。
誰がこれを引き起こしているのか知っていますか?
前もって感謝します!
django - Haystack/Whoosh SearchQuerySet の order_by に関する問題
以下に示すようにインデックスを定義し、 doc で指定されているように order_key integerfield をゼロで埋めます。
python manage.py rebuild_index を実行すると、SearchQuerySet を正しく order_by できますが、python manage.py update_index を実行するとすぐに、order_by を持つ SearchQuerySet は常に空のリストを返します。
どうしたの?
ありがとう
django - サイトの静的部分の Django 検索
Django-Haystack を使用して検索コンポーネントをサイトに追加する予定です。これにより、models.py にあるデータが処理されます。ただし、モデルには含まれていないが、テンプレートの一部であるデータも検索可能にしたいと考えています。どうすればこれを入手できますか。
django - ログインしたユーザーを haystack 検索に渡す
現在ログインしているユーザーのアカウント タイプに関する検索結果を表示したいと考えています。ユーザーをリクエストから URL のオブジェクトに渡すことは可能ですか? そうでない場合、他にどのように渡すことができますか?
もう少し詳しく言うと。haystack urls.py には
現在ログインしているユーザーを SearchView オブジェクトに渡すことはできますか?
django - django-haystack と Spatial Solr Plugin を使用した複数の場所の半径検索
私は、それぞれが独自の緯度/経度を持つ多数のオフィス「場所」を持つことができる Person モデルを持っています。
オフィスを 1 つだけ追加できるようになる前は、JTeam の spatial-solr-plugin を使用して半径検索を行う django-haystack 用に作成したフォークを使用していました。https://github.com/sidmitra/django-haystackを参照してください
オフィスの数は無制限であるため、インデックスで個別の緯度/経度フィールドを使用することはできません。
私が考えることができる1つの方法は、代わりに「場所」モデルにインデックスを付けることでした。各場所は、インデックス内の個別のエントリになります。したがって、この問題は解決されますが、Person インデックスからこの場所インデックスにすべてのフィールドを複製することになります。これは短期的にはまともな解決策かもしれませんが、長期的にはおそらく厄介でしょうか?
指定された半径内にある住所に基づいて、場所を個別にインデックス化し、関連する人物をフィルタリングする方法があるかどうか疑問に思っていますか?
django - 干し草の山でのフィルタリングが機能しない
フィールドステータスが次のように定義されているモデルがあります。
今はシンプルなエンジンセットで干し草の山を使っています。私の検索インデックスは以下のとおりです。
問題は、を使用してエントリをフィルタリングしようとすると
entries.filter(status=ENTRY_DRAFT)
、フィルタリングに一致するだけでなく、すべてのオブジェクトを受け取ることです。エントリは、他の関数に渡されるSearchQuerySetです。なにが問題ですか?