問題タブ [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 - Elasticsearch / Tire:ファセットオーダー
Tireのファセットの順序をどのように指定できますか?
ここに見られるようにElasticsearchで可能です: http ://www.elasticsearch.org/guide/reference/api/search/facets/terms-facet.html
タイヤでは、デフォルトは「カウント」ですが、「用語」の順序に変更する方法がわかりません。
これが私の検索方法です:
終わり
ruby-on-rails - 条件付きのインデックスをインポートする方法
Rails 3 に Article という名前のモデルがあり、rake environment tire:import CLASS='Article' FORCE=true
インデックスを作成するために使用します。deleted
しかし、フィールドが false に等しい記事だけをインデックスに登録したいのです。どうすれば実装できますか?
ruby - ElasticSearchでこのデータをマッピング/クエリする方法は?
私はElasticSearchをタイヤジェムと一緒に使用して、サイトの検索機能を強化しています。必要な結果を得るためにデータをマッピングおよびクエリする方法を理解するのに問題があります。
関連するコードは以下のとおりです。その下にも、望ましいアウトバットについて説明します。
上記のように、「product_traits」フィールドから必要なものを取得するために、elasticsearchとの間でデータの前処理/後処理を行っています。これは正しくないと感じていることであり、私の質問の出所です。
私は製品の大規模なカタログを持っており、それぞれに色、素材、ブランドなどのいくつかの「特徴」があります。これらの特性は非常に多様であるため、特定の製品の特性の値を保持するProductTraitモデルを介して製品モデルに関連する特性モデルを含むようにデータをモデル化しました。
最初の質問は次のとおりです。これらの特性に適切にインデックスを付けるためにelasticsearchマッピングを作成するにはどうすればよいですか?これにはネストされたタイプが含まれていると思いますが、ドキュメントを理解するのに十分な意味がありません。
2番目の質問:ファセットをグループに戻したい(上記の方法の最後で処理している方法で)が、各特性に対して現在選択されている値を考慮せずに、search
一致する数を反映するカウントを使用する。例:ユーザーが「Glitter」を検索してから「BlueColor」ファセットに対応するリンクをクリックした場合、すべての「Color」ファセットを表示したままにし
、「BlueColor」フィルターなしでクエリ結果に対応するカウントを表示します。 。それが良い説明であることを願っています。さらに明確にする必要がある場合は申し訳ありません。
ruby-on-rails - Elasticsearchの同じフィールドで複数のクエリを使用して検索するにはどうすればよいですか?
ElasticSearchとtire.rbを使用して、アイテムのコレクションのインデックスを作成して検索しています。
インデックスの名前フィールドでクエリを実行したい。
アルファロメオという名前のドキュメントがある場合は、次を検索してこのドキュメントを検索します。
- 「アルファ」
- 「アルファレメオ」(つづりの間違いに注意)
ElasticSearchとtireでは、2つのクエリを別々に設定する方法を知っています。
ワイルドカードで検索する:
ファジー(レーベンシュタイン距離)で検索:
(またはと)組み合わせる方法は?
私がやりたいのは、ワイルドカードまたはあいまい検索が一致するすべてのドキュメントを見つけることです。2つの別々の検索を実行してそれらを組み合わせようとすることもできますが、それはあまり意味がありません。これを論理的な方法で行うことはできますか?
ruby-on-rails - ElasticsearchのTiregemで検索結果から_sourceを削除する方法
Elasticsearchで(Tire gemを介して)添付ファイルのインデックスを作成していますが、かなり大きいです。なんらかの理由で、私はこれを予期していなかったので、検索は非常に遅いです。Tire_source
(ES)が検索結果にドキュメント全体を含めているためと思われます。これは不要ですが、オフにする方法がわかりません。
ESと直接通信する場合は、ESpartial_fields
を制限する要素を含めることができます。
タイヤ検索から要素を除外する方法を知っている人はいますか?
ruby-on-rails - いくつかの非常に具体的なelasticsearchの質問
Rails + Tire+ElasticSearchについて非常に具体的な質問がいくつかあります。
私はそれについてRailscastを見てきました、そして私はたくさんのドキュメンテーションを読みました、しかし正直に言うとそれは私の頭の上にあります。なかなか把握できない細かい点を理解してくれる人が欲しいです。
これが私のモデルのResource.rbelasticsearch部分です。
- 'not_analyzed'はどういう意味ですか?私が読んでいるチュートリアルの多くでは、これを使用しています。分析されていないのに、なぜ含まれているの
mapping do
ですか? - インデックスを使用する目的は何ですか。たとえば、のようなもの
indexes :id, type: 'integer'
です。整数にインデックスを付ける必要があるのはなぜですか?それはパフォーマンスなどに役立ちますか? - URLのアナライザーを変更して、より適切に機能させるにはどうすればよいですか?たとえば、として保存されている場合
http://www.dropbox.com
、検索dropbox.com
しても結果は見つかりませんが、検索されwww.dropbox.com
ます。さまざまなアナライザーをすべて貼り付けてみましたが、URLに対して実際に機能するアナライザーはありません。 - 「本」、「映画」、「テープ」など、複数形で保存されている場合
category.name
、アナライザーに単数形と複数形に基づいてこの単語を表示するように指示するにはどうすればよいですか。「映画」の検索は機能しませんが、「映画」は機能します - を削除する
load: true
と、サイト全体が壊れます。彼はこれをレールキャストで調べましたが、ほんの一瞬でした。つまり、すべての属性(および関連付け)をマッピングに移動し、それを:not_analyzedに変更する必要がありますか?(私はちょうど気づきました...多分私はちょうど自分の質問#1に答えました!) - 一般に、ORに最適なデータの種類と、ANDに最適なデータはどれですか。より多くの結果を得る限り、私は考えているか、より寛大に思えます
ruby-on-rails - Elasticsearchでは*すべての*関連付けをマッピングする必要がありますか?
私は1つの巨大なモデルを持っています(それは基本的に私のアプリ全体です)。このモデルには、多対多、:through =>などを含む7つ以上の関連付けがあります。このモデルには、いくつかの単純な属性(タイトル、URLなど)もあります。
インデックス作成で気になるのは、3つまたは4つの単純な属性(タイトル、URL、説明、カテゴリ)だけです。残りは気にしない。
を使用するとすべてが完全に機能しますload: true
が、オフにするとすぐにすべてが壊れます。これを修正する唯一の方法は、すべての関連付けに対して複雑なマッピング、:touch、:touchコールバックなどを追加することです。
これは、3つまたは4つの単純な属性を検索するためだけの膨大な量のコードになるため、これが間違っていることを理解していることを願っています。
何について話しているのかわかりませんが、elasticsearchインデックスを検索しても、IDのリストを返し、通常のレールの方法でループすることはできますか?
ありがとう!
ruby-on-rails - 単数形/複数形が見られないタイヤ?
私が読んだすべてから、これはうまくいくはずです。変更するたびにインデックスを再作成しています。
私のカテゴリ名は、「本」、「映画」、「テープ」など、複数形で保存されています。Railsの用語では、これはと同じです@resource.category.name
検索すると機能しますが、検索するとbooks
機能しませんbook
。単数形または複数形のいずれかを検索して、カテゴリの結果を見つけることができるようにしようとしています
elasticsearch - エラスティック検索 JSON をタイヤ互換クエリに変換する方法
次の有効な JSON クエリをエラスティック検索に変換して、Ruby gem の「タイヤ」に相当するものに変換するのに問題があります。どんな助けでも大歓迎です...
ruby-on-rails - 言語ごとのタイヤ指数?
Railsモデルに次のタイヤマッピングがあります。
複数の言語をカバーできるようにするための最良の方法は何ですか(英語などを追加したい場合)?