問題タブ [tire]
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.
ruby-on-rails - RubyOnRailsアプリとOpenshiftでのElasticsearch
R&Rアプリにelasticsearchをインストール/使用するにはどうすればよいですか?
私はアプリに他のポート8080を使用しており、elasticsearchも同じように使用しているため、このチュートリアルは私のアプリでは機能しません。
編集
この設定でポートを変更します:
Elasticsearchの設定:
タイヤの設定:
そして、私はこのエラーがあります:
リクエストタイムアウト(RestClient :: RequestTimeout)
ポートを15002に変更すると、エラーも発生します。
ruby-on-rails-3 - Elasticsearch: タイヤの宝石を使用したグループによるフィルタリング
年齢層で絞り込み検索したい。
今私は持っています: program.rb
index.html.haml
コントローラーで:
年齢グループ:
関係:
検索フォームで 1 つ以上の age_groups をチェックしても、検索結果に何も起こりませんでした。
このタスクでタイヤを正しく使用するにはどうすればよいですか?
ruby - Elasticsearch を使用して空白を含むタグをフィルタリングする
mongoid でタイヤ (https://github.com/karmi/tire) を使用しています。これが私のモデル定義です:
ドキュメント {tags_array: ["hello world"]} があるとします。次に、次のクエリが正常に機能します。
ただし、次の場合は結果が返されません。
機能させるにはどうすればよいですか?
編集: ここにテストする小さなコードがあります: http://pastebin.com/n1rUtK3e
ruby-on-rails - RoR: マップされたフィールドによる Elasticsearch の並べ替え
私は Player を持っており、Player は Profile からフルネームを持っています。Playerでelasticsearchを使用しています。フルネームによるデフォルトのソートが必要です。どうすれば設定できますか?Player クラスファイルからの私のコード:
並べ替えで :id を :fullname に変更すると、次のエラーが発生します。
highlighting - タイヤ付きのElasticsearch、ハイライトが機能しない
ここで何かが欠けているに違いありませんが、Elasticsearch を使用して検索で強調表示しようとすると、強調表示がまったく表示されませんが、エラーも表示されません。タイヤの問題ではないと思いますが、重要な場合に備えてタイヤについて言及します。Tire を使用したインデックス作成は非常に単純です (簡潔にするために一部のフィールドを省略しています)。
curl を使用して、次のクエリを試すことができます。これは正常に機能しますが、結果に強調表示はありません。
念のためにマッピングに「:store => true」を追加したことに注意してください。ただし、強調表示を機能させる必要はないと思います。したがって、マッピングまたはクエリ仕様のいずれかで何かが欠けていると思いますが、それはわかりません。どんな提案でも大歓迎です。ありがとう。
elasticsearch - ElasticsearchとTire:分析設定を追加すると、_sourceから除外されますか?
大きな添付ファイルを使用してElasticsearchにインデックス付けされているオブジェクトがありますが、これを_sourceに保存したくありません。マッピングで「excludes」を指定すると修正されましたが(SOでここに回答された別の質問のおかげで)、フィルター/アナライザーのカスタム設定を追加すると、どういうわけか除外が壊れてしまい、タイヤの問題なのか、それともタイヤの問題なのか疑問に思います。除外を別の方法で指定する必要があるだけです。
コードは次のとおりです。
「:excludes」を含む「mapping」行は、「settings」ブロックを追加するまでトリックを実行していたため、それに関する何かが除外を無視する原因になりました。そこに何かアイデアはありますか?前もって感謝します!
elasticsearch - マルチワードファセット(ElasticSearch + Tire)
私のモデルには、タグの配列であるタグフィールドがあります。私が抱えている問題は、タグをキーワードのように機能させたいということですが、ESは、ファセットの目的でタグをスペースに分割しています。
マッピングは次のとおりです。
人気のあるタグのクエリは次のとおりです。
結果は個々の単語になります。たとえば、["retro music"、 "awesome"]のタグが付けられたレコードには、3つの別々のタグが付けられます。同様に、「retro music」(must { term 'tags', options[:tag] }
)を検索するクエリを実行すると失敗しますが、「retro」または「music」のクエリは成功します。ここでの望ましい動作は、タグがアトミックである必要があるため、「レトロミュージック」(または「素晴らしい」)タグ検索のみが成功することです。
ruby-on-rails-3 - 特定のフィールドを検索から除外するためのElasticsearch/TireテキストクエリDSL
次のようなElasticSearchクエリがあります。
上記のようにquery_stringにfieldsparamを指定することで、特定のフィールドでElasticSearchクエリを実行できます。私のインデックスマッピングでは、約50のフィールドにインデックスが付けられています。1つを除くすべてのフィールドをクエリするにはどうすればよいですか。文字列をクエリするためのexcludeオプションのようなもの。Tire / Elastic Searchで可能ですか?
ruby-on-rails - ElasticSearch がデータベースと同期していることを確認する
ES サーバーの更新に問題があった場合に備えて、次のことを実行する毎日のスクリプトを検討しています (私はまだ高可用性のセットアップを行っていませんが、それでもおそらくDB と ES の間でデータが複製されている状況では良い方法です)。このスクリプトをまとめる前に、これが正しい方法で行われているかどうか、使用すべきライブラリやテクニックがあるかどうかを確認しようと思いました。
このスクリプトは、データベースからすべての ID を取得し、ElasticSearch からすべての ID を取得しますcreated_at < current_time
(スクリプトの実行時に移動するターゲットであるため、現在の時刻のスナップショット)。次に、これらの ID セットの違いに基づいて、エラスティック検索に追加および削除します。
これは合理的なアプローチのように聞こえますか?