問題タブ [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 Gem: "IndexMissingException[[products] missing]"?
製品をインデックスに登録する方法がわかりません。それが原因でこのエラーが発生するからです。
ここに私の製品モデルがあります:
これが問題の場合、製品をインデックスに登録するにはどうすればよいですか?
ありがとうございました。
ruby-on-rails - マッピングされていないフィールドは、ElasticSearchによって返される検索結果に含まれます
ElasticSearchのクライアントとしてTiregemを使用してPDF添付ファイルのインデックスを作成したいと思います。私のマッピングでは、添付ファイルフィールドを_sourceから除外して、添付ファイルがインデックスに保存されず、検索結果に返されないようにします。
次のcurlコマンドを実行しても、検索結果に含まれる添付ファイルのコンテンツを引き続き表示できます。
私はこのスレッドに私の質問を投稿しました:
しかし、添付ファイルが検索結果に含まれているだけでなく、マップされていないフィールドを含む他のすべてのフィールドも、ここに表示されているように含まれていることに気づきました。
attachment_file_size
マッピングでattachment_content_type
は定義されていませんが、検索結果に返されます。
これが私の完全な実装です:
誰かが私がすべてのフィールドがに含まれている理由を理解するのを手伝ってもらえます_source
か?
編集:これは実行の出力ですlocalhost:9200/user_files/_mapping
ご覧のとおり、何らかの理由ですべてのフィールドがマッピングに含まれています。
ruby - ElasticsearchJSONクエリに相当するタイヤ
コマンドラインから直接クエリを実行すると非常にうまく機能する標準のJSON形式のクエリがあります。jsonは次のとおりです。
これにより、希望どおりの結果が得られます。
しかし、同等のタイヤクエリに適したシンテックスを見つけることができません。私は試した:
しかし、これは私に構文エラーを与えています:
他のフォーラムでは助けが見つかりませんでした。mustブロックに複数のクエリを入れようとすると問題が発生します。助けてください。
前もって感謝します
-アジタブ
ruby-on-rails - Elastic Search / Tire:アソシエーション属性にマップする方法は?
ElasticSearchにTireを使用しています。私のアプリケーションには2つのモデルがあります。価格と製品。
Priceクラスを検索し、それが属するProductの:name
属性を検索フィールドに使用しようとしています。今Product 1
、「pro」、「prod」、「duct」という商品を入力しても、結果は出ません。ただし、「product」または「Product」と入力すると結果が表示されます。問題は私のマッピングにあると思います。クエリとその内容を確認しました。
私がそうあるべきだと思うとき:
この質問から判断すると、ElasticSearchマッピングは機能しません
params[:query]
でも、どうやって自分だけを服用させるのかわかりませんproduct.name
。私は使用しようとしました:string params[:query], default_field: "product.name"
しかし、それはうまくいきませんでした。
_all
フィールドを使いたくない。
これが私のコードです:
Price.rb
では、製品名のみを使用するようにクエリフィールドを設定する方法を知っている人はいますか?
ありがとうございました。
ruby-on-rails - Elastic Search/Tire: ブール属性をフィルタリングするにはどうすればよいですか?
クラスのプライベート ブール値をフィルタリングして、プライベートではないリソースのみを表示したいのですが、うまくいきません。(私はコードを大幅に削減しました)
これを正しく行うにはどうすればよいですか?
ruby-on-rails - Tire を使用した ElasticSearch は、「文字列」検索では nGrams と一致せず、「テキスト」のみと一致します
そのため、nGram マッチングを ElasticSearch インデックスに追加しようとしましたが、次の問題が発生しています。
標準の文字列クエリを実行すると、完全一致のみが返されます。特定のテストフィールドで一致クエリを実行すると、期待どおりの nGram 一致が生成されます。
これら(1) の例(2)に基づいて、フィールドに nGram フィルターとアナライザーをセットアップします。マッピング コードは次のとおりです。
エラスティックサーチ クエリ
結果を生成するクエリ:
結果を生成しないクエリ:
特定の列でテキスト/一致検索を実行するのではなく、一般的な query_string 検索ですべてのインデックス付きフィールドを調べて ngram と一致させる方法はありますか?
ruby-on-rails-3 - Tire::Model::Persistence でオブジェクトをインスタンス化する
Tire::Model::Persistence を使用して Elasticsearch をデータストアとして使用する方法を学習しようとしている非常に単純な rails3 アプリがありますが、検索に問題があります (検索の場合)。
これが私のモデルです:
これが私のルートです:
これが私のコントローラーです:
私のindex.html.erb:
上記では、パラメーターなしで index メソッドを表示するだけで、問題なくレンダリングされます。if params[:q] をコメントアウトして、通常の旅行と同じようにすべての投稿を返すようにしました
ただし、その検索ボタンを押すとすぐに、次のエラー メッセージが表示されます: Routing Error
{:action="show", :controller="posts"} に一致するルートはありません
ビュー内の行を <%= link_to ... %> に削除すると、ビューはすべての投稿の名前と published_on テキストでレンダリングされます。
コントローラーで変更した場合:
戻る
Post.allを削除します
次に、テンプレートで次のエラーが発生します。
おそらく私が行っていない簡単なことがあるのですが、それを理解することはできません.現在、唯一のデータストアとしてレールでタイヤを使用するだけの優れた例がないため、これが単にあいまいな問題であるかどうかはわかりません.アクティブレコードを使用していないときに遭遇します。
ruby-on-rails - Elasticsearch:添付ファイル内からヒットを強調表示
RailsアプリでElasticsearch(およびTire)でハイライトを機能させるのに問題があります。PDF添付ファイルのインデックスを作成してクエリを実行することはできますが、強調表示を機能させることができません。
ESにあまり詳しくないため、トラブルシューティングの場所がわからない。マッピングとcurlクエリから始めますが、詳細についてはお気軽にお問い合わせください。
マッピング(Curl経由):
125ページのインデックス付きPDF内に「ヒット」があるクエリ:
私は次のようなセクションを期待していました:
助けてくれてありがとう!
Edit2:クエリ(に変更)をattachment
無効に調整:attachment.file
Edit3(「フィールド」を削除):
Edit4(アクションチュートリアルの添付ファイルタイプからのマッピング):
ruby-on-rails - ElasticSearch スコアリング (Tire gem)
キーワードがフィールドに表示される回数に基づいて結果を返すように、ElasticSearch (具体的には Tire gem) が必要です。たとえば、Article というモデルのフィールドタイトルにインデックスを付けます。最初のオブジェクトのタイトル値は'Funny Funny subject'で、2 番目のオブジェクトのタイトル値は'Funny subject'です。キーワード'Funny'を検索すると、タイトルに 2 つの 'Funny' 単語が含まれているため、最初のオブジェクトが最初に返されるようにインデックスを作成したいと考えています。タイヤ経由でこれを行うことは可能ですか?索引付け方法も何と呼ばれますか?
ruby-on-rails - Rails 3アプリでdob日時フィールドを使用してage_fromからage_toを検索する方法は?
タイヤが初めてで、プロファイル モデルで DOB (誕生日) 列を検索する方法を理解しようとしています。
- age_from と age_to (たとえば 20 から 60 ) を設定できる単純な検索を構築してみてください。
- dob フィールドしかないので、これを行うにはどうすればよいですか?
- レコードの作成時に年齢を計算して列に保存し、それを Profile モデルに追加して検索をクリーンにする方がよいでしょうか?
これに対する最善のアプローチは何ですか?どうも