問題タブ [sunspot-rails]

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.

0 投票する
1 に答える
1109 参照

ruby-on-rails - 黒点:子モデルを更新するときに親モデルのインデックスを強制する

私はSunspotを使用して、アプリのインデックスと概要を多数生成しています。

このアプリでは、親子の1対多の関係を持つ2つのモデルがあります。Sunspotを使用すると、親が持つ子の数にインデックスを付けることができるため、これは並べ替え、スコーピングなどに使用できます。

ただし、子モデルを変更しても、親モデルは自動的にインデックスが再作成されません(変更されていないため)。子のcall_backを介してparent.saveを強制しても、インデックスは強制されません。

だから私がハッキングを始める前に:

子モデルが変更/追加されたときにSunspotの親クラスにインデックスアクションを強制するための最良の方法は何でしょうか?

0 投票する
1 に答える
201 参照

ruby-on-rails - Sunspot を使用してインデックス ビューを生成する - それは賢明ですか?

現在、多くの「インデックス」ビューが多くの仮想属性を利用するアプリで開発中です。同時に全文検索機能も必要です。

私たちが選択した解決策は、Sunspot/Solr を使用して、仮想属性を含むモデルのインデックスを作成することです。次に、Sunspot を使用して正しいレコードを取得し、並べ替え、検索などを行います。これはすべて、開発セットアップで非常にうまく機能します。

明らかに、このアプローチでは、Solr インデックスをデータベースと同期させておく必要があります。そうしないと、ユーザーが新しく作成したレコードがインデックス ページに一覧表示されません。これを実現するために、アプリのさまざまなポイントでインデックス アクションを強制します。

このソリューションを構築する前に、Sunspot をこのように使用することに懸念があるかどうかを確認したかっただけです。特に、アプリが大きくなった場合、インデックスを完全に同期させなければならないので、その負担が大きくなりますか?

インデックス ページで仮想属性を処理するのは非常に優れた方法のように思えますが、実際にはあまり良くないことを確認したいと思います...

助けてくれてありがとう
アーウィン

0 投票する
1 に答える
363 参照

ruby-on-rails - Rails Sunspot - 値でファセット行を取得することは可能ですか?

クエリ ファセットがある場合 (したがって行の がわかっている場合value)、既知の に基づいてファセットから特定の行を取得することは可能valueですか?

そして、ビューで私は次のようなことをします:

ビュー出力の書式設定/整形に役立ちます。

このようなことは可能ですか?

0 投票する
2 に答える
1578 参照

ruby-on-rails - UbuntuサーバーのSunspotサーバーに接続できません

https://github.com/outoftime/sunspot/wiki/Adding-Sunspot-search-to-Rails-in-5-minutes-or-lessの手順に従って、MacのRailsにSunspot検索をインストールして設定しましたOSとそれは大丈夫です。
Ubuntuサーバーでは、接続拒否エラーが発生します。
私が走るとき

プロセスが開始されます。ファイルsunspot-solr-development.pidはで作成され/tmp/pidsます。しかし、インデックスを再作成しようとすると

でコマンドを実行してプロジェクトファイルにsudoアクセス許可777を与えようとしましたが、それでもエラーが発生します。Rails3.0.8。

何か案は?

0 投票する
1 に答える
479 参照

solr - facet.date.start をランダムな過去の日付に設定しないすべての時間データ

Posts の時系列データを取得するには、次のクエリを使用します。

facet.date.start をランダムな過去の日付 (たとえば 100 年) に設定せずにすべての時間データを取得する方法はありますか?

0 投票する
0 に答える
493 参照

ruby-on-rails - sunspot_rails レーベンシュタイン距離演算子

私はsunspot_rails(rails3上)を使用して、レールアプリをsolrサーバーに接続しています。~ 演算子を使用してあいまい検索を実行したいと思います。とにかく、これはサポートされていないようです。現在、EdgeNGrams を使用するようにフォールバックしていますが、結果に完全に満足しているわけではありません。

なにか提案を?sunspot_rails を介してレーベンシュタイン距離検索を行うことができた人はいますか?

解決した

Sunspot が提供するadjust_solr_paramsメソッドを使用すると、デフォルトのクエリ パーサーをオーバーライドできるため、~. 基本的に、defType パラメータを設定する lucene クエリ パーサーを Sunspot で使用するようにしました。

0 投票する
1 に答える
2603 参照

sunspot - モデルIDで検索結果を並べ替えるSunspot Rails?

次のモデルがあり、 で検索可能にしたとしsunspot_railsます。

schema.xmlRails の Sunspot の標準はid、インデックス付きフィールドとして宣言します。Web インターフェイスを使用して solr にアクセスし、次のようなクエリをテストすると、次のようになります。

equal toを検索しCasesて正常に動作し、結果を返します。idCase 15

問題は、Rails コンソールで Sunspot Rails を使用して検索を実行したときです。

私は得る:

これは、正しいクエリ値が正しく入力されていることを示してい:qますが、ヒット数は 0 です。

戻り値

keywordsそれが同等ではなくtext、コロンの前に定義されたフィールドではなく、フィールド (全文検索)のみを検索すると仮定する:と、次のことを試すことができます。

しかし、これは Sunspot 例外で失敗します:

idモデルのインデックス付き標準 solr/sunspot フィールドを使用して検索するにはどうすればよいですか?

質問をより便利にするために、IDで注文するにはどうすればよいですか。以下は機能しません。

動作しません。Sunspot::UnrecognizedFieldError: No field configured for Case with name 'id'

0 投票する
0 に答える
406 参照

ruby-on-rails - sunspot_railsを使用してアプリをテストするためのRSpec仕様の記述

sunspot_matchers gem(または単なるRSpec)でRSpecを使用して、sunspot gemを使用してコードをテストする良い例はありますか?

このエラーで何が起こっているのかを理解しようとしていますが、確かな例は見つかりません。

これが私が現在取り組んでいるモデル、スペック、スペック出力からのスニペットです:

/models/channel.rb

/spec/models/channel_spec.rb

RSpec出力、(r)、(y)、(g)は、失敗、保留、および合格の仕様を示します

上記のモデルでif/else条件をテストしようとしています。

何か案は?または、全体的なアプローチに関するアドバイスはありますか?

いくつかの良い例/ドキュメントは素晴らしいでしょう...または多分私はどこかで何かを逃しただけです。

ありがとう、

ケントン

0 投票する
3 に答える
1797 参照

ruby-on-rails - Sunspot-solr が大量のメモリを消費していますか? メモリ使用量を減らす便利な方法は何ですか?

そのため、Sunspot-Solr が大量のメモリを消費しているようです。そして、それはおそらく、プログラマーとしての適切な使用法を割り当てた私の過ちによるものです。

まず第一に、私は太陽黒点がそれ自体でインデックスを再構築することを許可しません。

これだけでも、インデックスの再作成を妨げていると思います。代わりに、早朝に 1 日 1 回実行される cron タブで再インデックス プロセスを実行します。

私がこれを始めた理由は、アプリケーションがスケーリングされるにつれて、データがマシン上に非常に重く置かれているように見えたため、単にホームページをロードするだけでかなりの時間がかかるようになったからです。

以下のエラーを引き起こすために何が間違っていますか? そして、私は何をより良くすることができますか?

問題のエラー:

0 投票する
5 に答える
2827 参照

ruby-on-rails-3 - Sunspot_Rails - ページ上で未定義のメソッド「検索可能」

searchable次のようなブロックを持つモデルがあります。

コントローラーのindexアクションで、 を呼び出しContact.newています。これにより、現在ステージング サーバーで実行されているページにエラー メッセージが表示されます。

#<Class:0xce0bf80> の未定義メソッド「検索可能」

スタック トレースは、コントローラー内searchableの行を介してモデル内のブロックを指しています。Contact.new

Web ページまたはコンソール、またはステージング サーバーのコンソールを介してコードをローカルで実行すると、このエラーは表示されず、ステージング Web ページでのみ表示されます。

Solr サービスはステージング サーバーで正常に実行されており、データは正常にインデックス化されています。ステージングでボールをプレーしていない理由についての理論は受け入れられます。

編集

以下の Nick の質問への回答として、Gemfile には Sunspot の次の行が含まれています。gem 'sunspot_rails'

Gemfile.lock については、Sunspot または Solr の参照を含むすべての行を確認できます。