問題タブ [searchkick]

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 に答える
631 参照

ruby-on-rails - Searchkick on Rails で「このクエリに似た」特殊な用語を実行していますか?

searchkick を使用して Elasticsearch にインデックス付けされている Widget モデルがあるとします。

そして、これらのドキュメントにインデックスを付けました:

新しいテキストに対して「もっと似た」(MLT) クエリを実行しようとしています。

私の目標は、私のドキュメント コーパスでは一般的な「作業」よりも「レーザー」の方が専門的であるため、最高スコアの最後のドキュメントにヒットさせることです。

私はこれを試しました:

しかし、それは最高のスコアで一番上にある「work with ...」ドキュメントを返します。

key/val { stopwords: ['work', 'with'] } も入れてみましたが、結果は0です。

searchkick/elasticsearch を取得して、最高スコアの特殊な用語を含むドキュメントを返してもらい、一般的に見られる用語のみに一致するドキュメントを軽視する方法はありますか?

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

ruby - 個別のハッシュを使用した動的クエリの構築

わかりました、私は午前中ずっとこれにアプローチする方法を理解しようとしていました。次のようなハッシュがあるとします。

次のようなクエリを作成します。

これまでの私のアプローチは、受信ハッシュを次のように変換することです。

次のように元のハッシュを反復処理します。

私が抱えている問題は、作成しようとしているクエリが「boost_by」する不明な数のハッシュで構成されているため、filters[0] && filters[1]ここで困惑しているようなことをすることができないということです。クエリにハッシュを動的に挿入し、それらの間に演算子を配置する方法を知っている人はいますか?

編集:

クエリは次のようになります。

上記のクエリには、任意の数のハッシュと演算子を含めることができます。したがって、ユーザーが 10 個のフィールドを boost_by に渡したい場合、10 個すべてのハッシュとそれらの間の演算子を受け入れることができる必要があるため、たとえば、クエリは次の例のいずれかのようになります。

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

ruby - 動的 SearchKick クエリを作成すると構文エラーがスローされる

このクエリを実行すると:

すべてがうまく機能し、結果が得られます。しかし、このクエリを実行すると

が得られますがSyntaxError: unexpected ')', expecting =>、その理由がわかりません。さらに重要なことに、このクエリの書き方もわかりません。ブースター部はダイナミック。「ブースト」する任意の数の属性を取得し、それらをクエリに挿入します。

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

ruby - searchkick でスコアを返す

弾性検索でSearchKickを使用しており、スコアを返そうとしています。たとえば、次のように検索したとします。

その検索に一致する最高スコアのレコードを取得します。各レコードでスコアも返したいと思います。searchkick の応答を取得して解析できることはわかっていますが、返されたレコードにスコアをマージするためのより高速な方法はありますか?

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

ruby - ElasticSearch / Searchkick - LIKE クエリ

Rails で ElasticSearch gem Searchkick を使用しており、次の 2 つの値に基づいて検索を実行したいと考えています。

1 つはすべてのフィールドの全文を検索する必要があり、もう 1 つは 1 つのフィールドに部分的に一致するレコードのみに検索を制限する必要があります。

私はこのようなものが欲しい:

ただし、正確な値だけでなく部分的な値も一致させるには、場所フィルターが必要です。「New York」だけでなく、「New York, US」もそうです。SQL で行う %something% のように。

ページネーションのサポートも必要なので、1 つのクエリにする必要があります。

私のオプションは何ですか?

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

ruby-on-rails - Twitter Typeahed 0.11.1 で結果が 1 つしか表示されない

検索キックを使用して、データベース内の人を見つけようとしています。ユーザーがドロップダウン リストから人物を選択すると、その人物の ID が非表示フィールドに入力され、その値が送信されます。

その部分はうまくいきます(ほとんど)。

私が抱えている問題は、結果が 5 つ未満の場合、typeahead がドロップダウンに 1 つの値 (searchkick が返す最初の値) しか表示しないことです。結果が 5 件を超える場合、ドロップダウンは表示されません。

これが私の Person モデルです:

マイ ピープル コントローラー:

私のフォームビュー:

そして私の検索js:

また、誰かがブラッドハウンドをもう少し詳しく説明してくれると助かります (トークナイザーと識別機能の機能)。

私は何時間もドキュメントを調べてきましたが、クリックしていません。

おまけの質問: データベースに複数のジョンがいるとしましょう。

  • ジョンスミス
  • ジョン・ドウ
  • ジョン・スノー

John を検索すると (これは 0.10 でした)、ドロップダウンに 3 つすべてが表示されましたが、スペースを押して姓の入力を開始すると、searchkick は何も返さず、すべての結果が消えます。Searchkickでこれを行う方法はありますか?

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

ruby-on-rails-4 - Searchkick 複数モデル クエリ

特定の場所にあるすべてのアイテムを検索するクエリを実行しようとしています。が存在するItem.rb&Location.rbモデルがsearchkickあります。私のitemsコントローラーには、次のロジックがあります。

:item_nameパラメータをキャッチするために使用されます)

Antは次のログです:

Location と Item のインデックスを再作成し、サーバーを再起動しようとしましたが、役に立ちませんでした。

two/n モデルで検索を構築するにはどうすればよいですか?