問題タブ [elasticsearch-model]
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 - ネストされたjsonフィールドを検索するレールelasticsearch
関係を持つモデルにelasticsearch-model gemを使用していhas_many
ます。Article
ドキュメントと一致させるために、モデルがであり、関係が であるとしましょうhas_many categories
。そこで、次のように顧客のシリアライザーを作成しました (ドキュメントから直接)。
シリーズ化が進んでいるようです。記事の例の as_indexed_json の結果には、"categories" => {"title"=> "one", "title"=> "two", "title"=> "three"}
ブロックが含まれています。
私が苦労していて、ドキュメントで見つけることができなかったのは、このネストされたフィールドを検索する方法です。
これが私が試したことです:
ネストされたクエリに関するelasticsearchのドキュメントから、次のようになるはずだと考えました。
しかしr.results.first
、そうするとエラーが発生します: nested object under path [categories] is not of nested type]
...
シリアライザーの1行を次のように変更して追加しようとしましたinclude: { categories: { type: "nested", only: :title}
が、それは何も変更しません。それでも、カテゴリはネストされた型ではないと言います。
もちろん、次のようにネストせずにフィールドをクエリしてみました。
しかし、それだけでは結果は返されません。
次のように全文検索します。
結果を返しますが、もちろん、カテゴリ フィールドで「1 つ」を検索したいだけです。
どんな助けでも大歓迎です!
ruby-on-rails - Elasticsearch rails/Elasticsearch モデル検索モデルの関連付け
Movie
次のような名前のモデルがあります。
するとMovie.first.as_indexed_json
、次のようになります。
しかし、私がMovie.search("Christopher Lloyd").records.first
得るとき:=> nil
。
検索した俳優に関連する映画を検索するには、インデックスにどのような変更を加えることができますか?
elasticsearch - Elasticsearch での字幕データの検索
次のデータを持つ (単純な srt)
Elasticsearchでインデックスを作成する最良の方法は何ですか? ここで問題があります。検索結果のハイライトを、タイムスタンプが示す正確な時間にリンクさせたいのです。また、複数の srt 行に重複するフレーズがあります (final approach
上の例のように)。
私のアイデアは
- リスト タイプとして srt ファイルにインデックスを付けます。タイムスタンプがインデックスです。これは、複数のキーが重複するフレーズには一致しないと思います
- テキスト部分のみにインデックスを付けるカスタム トークナイザーを作成します。その場合、elasticsearchが元のコンテンツをどれだけうまく強調できるかわかりません。
- テキスト部分のみにインデックスを付け、elasticsearch の外部でタイムスタンプにマップし直します
または、これをエレガントな方法で解決する別のオプションはありますか?
ruby-on-rails - 大きな JSON ファイルからのデータのインデックス作成/インポート
JSONファイルからESにインデックスを追加/作成しようとした人はいますか? JSONファイルからESに直接大量のデータを「インポート」できるソリューションを探しています。
これまでのところ、2 つのプラグインを見つけました。
1 つ目は、Elasticsearch 用の FileSystem River です。この ES プラグインの問題は、プラグインが最新バージョンの ES と互換性がないか、または他の何かです。いずれにせよ、私はそれを機能させることができません。
私のJSONファイルは有効なファイルなので、ファイルファイルに問題はありません。
2 番目のプラグインElasticdump。バックアップ、バックアップからの復元、および他のクラスターへのデータの簡単な転送のための優れた ES プラグイン。ただし、ファイルのリストから直接「インポート」/インデックスを作成することはできません。
ES にはBulk Apiもありますが、ファイルからの「インポート」に使用できるかどうかは不明です。
それに関する考え/例/指示はありますか?
ruby-on-rails - Elasticsearch で Ruby のパスをクエリできません
私はelasticsearchインデックス「イベント」を持っています - そのインデックス内にタイプ「イベント」があります。
イベントオブジェクトには、「名前」を含むさまざまなプロパティを持つ「会場」があります。したがって、単純化された構造は次のとおりです。
今、私はelasticsearch-railsを使用しています-イベントのリスト、クエリDSLを使用した検索などはすべて正常に機能しますが、特定の名前の会場ですべてのイベントをリストしたい場合はどうすればよいですか?
私は、このようなことが可能であると仮定しています:
しかし、私は次のエラーが発生します:
この種のものがたくさん含まれている実質的なスタック トレースが続きます。
不正な形式の json を示唆する ParseExceptions - しかし、その理由はわかりません。
単純な検索
正常に動作するので、クエリの構造が間違っているだけだと思います。
一重引用符と二重引用符を切り替えてみましたが、このページの例をより厳密にフォローしてみました:
https://www.elastic.co/guide/en/elasticsearch/guide/current/denormalization.html
他の誰かがこの状況に遭遇したことがあり、ルビーでこれを機能させる方法を提案できるかどうか疑問に思いました。