問題タブ [elasticsearch-rails]
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 - エラスティック検索クエリは 1=0 を検索し、結果を返しません
私は最近、elasticsearch-rails と elasticsearch-model gems を使用して Ruby on Rails アプリケーションに ES を追加しました。モデルに適切なインデックスとマッピングを追加し、インポートしました。しかし、私の検索では常に 0 レコードが返されます。クエリは常に 1=0 を検索します。
一方:
ここで 1 つのレコードが返されることを期待していますが、一致するレコードはありません。
誰でもこれで私を助けることができますか?ここで何か不足していますか?
Report.import はインポートされた 4 つのレコードを示していますが、インデックス ページのドキュメント数に変更はありません。
elasticsearch - Elasticsearch - インデックスのフィールド内の一意の値
次のタイプのインデックスがあります。
インデックス内のウォッチリスト配列には、重複した値が格納されています。インデックスのサイズが大きくなるため、インデックスに重複した値を格納しないようにします。
集計を呼び出すことで一意の値を取得できることはわかっていますが、ここでやりたいことは、一意の値をインデックスに格納することです。
ここではelasticsearch railsを使用しています。「as_indexed_json」メソッドから返されたjsonに従ってデータにインデックスを付けます。上記のインデックスのデータは sql データベースにあり、変更できません。そのデータベースからしかインデックスを作成できないため、フィールド「ウォッチリスト」に「一意性」の制約が必要です。
それを行う方法はありますか?
ruby-on-rails - Elasticsearch Rails フィルター
私はelasticsearch-model gemでRails Webアプリを構築しています。Place モデルのフィルタリングを使用して検索クエリを作成したいと考えています。名前で検索を書くことに成功しましたが、都市 (この例ではロンドン) で検索をフィルタリングできるようにしたいと考えています。
今のところ、私のクエリは次のようになります。
そして、私が単純に呼び出すよりもPlace.search("here goes query").records.to_a
フィルター部分の検索がなくても問題なく動作しますが、フィルターを追加すると結果が得られません。
これはプレイス検索のマッピングです:
フィルタリング方法を確認するために使用していたリンクは次のとおりです。Elasticsearch doc
ruby-on-rails - Rails の Elasticsearch 日時オブジェクトがインデックスから適切にハイドレートされず、文字列として読み取られる
格納:date
するオブジェクトを決定する方法として定義されたインデックス付きフィールドがあります。DateTime
そして、as_indexed_json
私はそれを下にリストしました:methods
目的の値に適切にインデックスを付けます"date": "2016-05-19T09:43:09-04:00"
が、検索後に値を読み取ると、日付はString
日付クラスではなくクラスとして返されます。
、、など、そのフィールドで使用可能なformat
値のいくつかをいじりましたが、値の読み取りやクラスの水分補給ではなく、値の設定と理解を調整するだけのようです。date_time_no_millis
strict_ date_time_no_millis
"yyyy-MM-dd'T'HH:mm:ssZ"
DB に存在するように、このdate
値を Rails として読み取るにはどうすればよいですか?DateTime
以前にGithub Issueとして投稿され、応答がありませんでした。
elasticsearch - ElasticsearchIllegalArgumentException[suggester [完了] にはコンテキストを設定する必要があります]
私は Elastic Search を使用して、people というインデックスの autosuggest フィールドを実装しています。
フィールドのマッピングは次のとおりですperson_name_suggest
-
Elastic Search に必要なリクエストは次のとおりです。
次のエラーが表示されます-
"error": "SearchPhaseExecutionException[Failed to execute phase [query], all shards failed; shardFailures {[OsbgjmewT569a-7ZoNCMtg][people_2016_10_29][0]: SearchParseException[[people_2016_10_29][0]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"suggest":{"suggestions":{"text":"M","completion":{"field":"person_name_suggest","context":890,"size":10}}}}]]]; nested: ElasticsearchIllegalArgumentException[suggester [completion] requires context to be setup]; }
私が見ることができるものから、私は補完サジェスターを正しく設定しています。
誰かが私を正しい方向に向けることができますか?
使用されている ElasticSearch のバージョンは1.6
ruby-on-rails - 製品の写真やその他のオプションを含む Elasticsearch オートコンプリート
最近、elasticsearch の学習を開始し、現在、いくつかのサンプル製品データを扱っています。ここで、ユーザーが入力した製品を提案したいと思います。Completion Suggesterのドキュメントをいくつか確認し、補完の例をいくつか実装しました。
通常の_searchよりも_suggestを使用することのいくつかの利点を確認しました
- 速度
- リアルタイム
- 可読性
- カスタムオーダー
これが私が試したスクリプトです:
しかし今、製品の写真を使用してユーザータイプとして提案するサジェスターと、カートに追加などの製品名を含むその他のオプションを実装したいと考えています。
ruby on rails で elasticsearch-rails gem を使用して、これらすべてを実装しています。
検索よりも多くの機能を提供するため、通常の補完タイプでそれを行うことができますか、それ以外の場合は通常の検索がこのシナリオに適していますか?
ruby-on-rails - Elasticsearch Rails as_indexed_json とマッピング
私は Elasticsearch Rails gem を使用しており、モデルでは次の 2 つを使用しています。
と
ドキュメントを読みましたが、これらのそれぞれの目的が何であるかを理解していません。私が把握しようとしているのは、これらがインデックス付きデータの検索またはインデックス付きデータの作成に使用されることです?
ruby-on-rails - Elasticsearch Rails のインデックス作成の問題
Elasticsearch と Elasticsearch Rails gem を使用しています。ActiveRecord を介して関連付けられている 2 つのモデルがあり、Elasticsearch でそれらのインデックスを作成して検索しようとしています。
ここに私の店のモデルがあります
store.rb
ここに私のアドレスモデルがあります:
また、フロント エンド UI として Searchkit を使用しています。Searchkit は、店舗モデルに含まれるすべての属性 (店舗番号やマネージャーなど) を集約して表示できます。ただし、ネストされたアイテムを表示することはできません。つまり、顧客の下にあるジョブの下の job_numbers を集計して取得することはできません。顧客名などを表示できます。ジョブと他のすべてのオブジェクトの横に type: "nested" を使用してみましたが、違いはありません。as_indexed_json を調整しようとしましたが、運もありませんでした。誰でもこれについて何か考えがありますか?私はこれに困惑しています。
ruby-on-rails - エラスティック検索で配列要素を照会する方法
これは、エラスティック検索での私のモデルのインデックスです
でcategory_idをクエリできます
Car.__elasticsearch__.search query:{match:{category_id: 6}}
car_branches を照会するにはどうすればよいですか? 私はこれを試しました
response = Car.__elasticsearch__.search query:{match:{car_branches:[id: 32]}}
私は得ていますElasticsearch::Transport::Transport::Errors::BadRequest: [400]