問題タブ [spring-data-elasticsearch]
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.
elasticsearch - Elasticsearch ノードとトランスポート クライアントに関する調査
テストでelasticsearchノードクライアントを使用し、運用/クラウドおよび開発でelasticsearchトランスポートクライアントを使用するようにアプリケーションを構成しました。
data
テストを実行すると、プロジェクトにディレクトリが作成されます。
次のディレクトリ構造を参照してください。
ここに私のクラウド/開発構成があります:
これが私のテスト構成です:
data
このディレクトリとは何か、ノードクライアントまたはトランスポートクライアントによって書き込まれたかどうかを誰かが説明できますか?
elasticsearch - Spring Data Elasticsearch の @Field アノテーションが機能しない
pom.xml に Spring Data Elasticsearch プラグインを使用した Spring Boot アプリケーションがあります。インデックスを作成したいドキュメント クラスを作成しました。
このクラスのリポジトリも作成しました。
リポジトリを使用して 3 つのサンプル オブジェクトにインデックスを付けるテストを行いました。かなり長いので、必要なだけ投稿します。実際には、ES サーバーで作成されたマッピングは、@Field アノテーションによって設定された構成を無視します。
アナライザーに関する情報はありません。「someTransientData」が格納されてインデックスが作成され、dateUp は Date ではなく Long として型指定されます。
サーバーから直接要求されたサンプル ドキュメント:
また、アプリケーションを 2 回目に実行すると、起動時にこのエラーが発生し、インデックスが既に存在する場合にのみ出力されることにも気付きました。
エラー 19452 --- [main] .dersAbstractElasticsearchRepository: Elasticsearch ノードの読み込みに失敗しました: org.elasticsearch.index.mapper.MergeMappingException: マージが失敗して失敗しました {[mapper [someTransientData] には異なるインデックス値があり、mapper [someTransientData] には異なるトークン化値があります、マッパー [someTransientData] には異なる index_analyzer があります。オブジェクト マッピング [セクター] はネストされていないものからネストされたものに変更できません。マッパー [operationName] には異なるストア値があります。マッパー [operationName] には異なる index_analyzer があります。マッパー [dateUp] のタイプは異なります。 、current_type [ロング]、merged_type [日付]]}
これは Spring Data Elastic Search のバグですか、それとも何か間違っていますか?
spring boot が提供する安定版と spring-data-elasticsearch の最後のスナップショットを試しました。また、プラグインによって提供される組み込み Elasticsearch サーバーと、現在のバージョンの外部サーバーも試しました。私はいつも同じ結果を得ました。
solr - Lucene/Solr/ElasticSearch を使用した、すぐに使える連携検索
特定のクエリが検索サーバーに送信されているときに、2 つ以上の検索インデックスを検索したいという要件があります。Lucene/ Solr/Elasticsearch? これが不可能な場合は、API レベルで検索インデックスが抽象化され、クエリが API に送信され、フードの下の API が 2 つ以上の検索と並行して検索を起動する検索クライアントから離れた場所に何かを設定しようとしています。結果にインデックスを付けて結合し、送り返しますか?
ここでのポイントは、そのような API フレームワークが利用可能である場合、または Lucene/Solr/Elasticsearch をそのまま使用するか、単にプラグインをインストールして構成することで可能である場合でも、車輪を再発明したくないということです。
elasticsearch - Elastic Search - ワイルドカードを使用した正確なフレーズ検索
ワイルドカードを使用した正確なフレーズ検索のヘルプを探しています。
上記のクエリは、次の結果を返します。
1) Java 検索 2) エラスティック Java 検索
末尾のワイルドカードが機能します。
しかし、以下のクエリのように検索すると、
「ava Se」と完全に一致するものはないため、何も返されません。上記と同じ結果を期待していました。
先頭のワイルドカードは機能しません。これを達成する方法はありますか?
ありがとう、Baskar.S
spring-data-elasticsearch - Springデータelasticsearch、パスの下にネストされたオブジェクトが見つかりませんでした
Spring データのエラスティック検索を使用しようとしています。このSpring Data Elastic Search with Nested Fields and mappingsも読みました
次の例外を取得します。
原因: org.elasticsearch.action.search.SearchPhaseExecutionException: フェーズ [dfs] の実行に失敗しました。すべてのシャードが失敗しました。shardFailures {[-EbBygdLRkKs49wqsf5ewQ][support_team_idx][0]: RemoteTransportException[[Artie][local[6]][indices:data/read/search[phase/dfs]]]; ネストされた: SearchParseException[[support_team_idx][0]: from[0]、size[10]: 解析失敗 [ソースの解析に失敗しました [{"from":0,"size":10,"query":{"nested" :{"query":{"bool":{"must":[{"term":{"supportteam.name":"test"}},{"term":{"supportteam.description":"test" }}]}},"パス":"サポートチーム"}}}]]]; ネストされた: QueryParsingException[[support_team_idx] [ネストされた] パス [SupportTeam] の下にネストされたオブジェクトが見つかりませんでした]; }
実在物:
....
spring - elasticsearch.yml のデフォルトのレプリカ構成を使用する
ElasticsearchTemplate で新しいインデックスを作成するときに、elasticsearch.yml で指定したレプリカ数の設定を使用したい。これの目的は、ES が実行されている環境に基づいてレプリカの数を設定することです。例: ライブで 4 つのレプリカ、テストで 2 つのレプリカを使用します。
これは各環境のelasticsearch.ymlでレプリカ数を適切な値に設定することで実現できると思います。
しかし、ElasticsearchTemplate を使用して (たとえば、Spring Data ES リポジトリを使用して) 新しいインデックスを作成すると、インデックス作成リクエストには @Document アノテーションのデフォルト値 1 が含まれます。
そのため、elasticsearch.yml のデフォルト値は使用されません。各環境のデフォルト設定の使用を強制する方法はありますか?
インデックステンプレートを利用する方法もあると思いますが、別の方法はありますか?
ありがとう