ElasticSearch クエリをデバッグしようとしています。問題のあるクエリの説明を有効にしました。これは、クエリが合計を行う必要がある中間スコアの積を行っていることを示しています。(elastic4s を使用してクエリ リクエストを作成しています。)
問題は、生成されたクエリが実際に何であるかがわからないことです。バグがelastic4s (クエリ要求を正しく生成していない) にあるのか、コードにあるのか、elasticsearch にあるのかを判断したいと考えています。そのため、次のコードを使用して、テストで使用される組み込みの Elasticsearch インスタンスのログを有効にしました。
ESLoggerFactory.setDefaultFactory(new Slf4jESLoggerFactory())
val settings = Settings.settingsBuilder
.put("path.data", dataDirPath)
.put("path.home", "/var/elastic/")
.put("cluster.name", clusterName)
.put("http.enabled", httpEnabled)
.put("index.number_of_shards", 1)
.put("index.number_of_replicas", 0)
.put("discovery.zen.ping.multicast.enabled", false)
.put("index.refresh_interval", "10ms")
.put("script.engine.groovy.inline.search", true)
.put("script.engine.groovy.inline.update", true)
.put("script.engine.groovy.inline.mapping", true)
.put("index.search.slowlog.threshold.query.debug", "0s")
.put("index.search.slowlog.threshold.fetch.debug", "0s")
.build
しかし、logback.xml で構成されたログ ファイルに記録されているクエリが見つかりません。実際のクエリではなく、elasticsearch からの他のログ メッセージがそこに表示されます。