Mongo、Elasticsearch、Spring Boot の両方を使用するプロジェクトを開始しました。
どちらのテクノロジーだけでも、プロジェクトは問題なく機能します。ただし、両方を一緒に使用すると、競合します。私の問題に似ていると思われるこの特定の記事を見ました。 https://jira.spring.io/browse/DATAES-57 それで試してみましたが、問題はまだあります。
これらをメインクラスに置きます
@EnableAutoConfiguration(exclude = MongoRepositoriesAutoConfiguration.class)
@EnableMongoRepositories(basePackages = "com.searchizi.mongo.repository")
@EnableElasticsearchRepositories(basePackages = "com.searchizi.elasticsearch.repository")
@ComponentScan
public class Application implements CommandLineRunner { … }
例外トレースの短縮形はこちら
クラスSearchiziUser
はcom.searchizi.mongo.model
パッケージに含まれています。Elasticsearch スキャン パス上にありません。
Caused by: java.lang.IllegalArgumentException: Unable to identify index name. SearchiziUser is not a Document. Make sure the document class is annotated with @Document(indexName="foo")
at org.springframework.util.Assert.isTrue(Assert.java:65)
at org.springframework.data.elasticsearch.core.ElasticsearchTemplate.getPersistentEntityFor(ElasticsearchTemplate.java:869)
at org.springframework.data.elasticsearch.core.ElasticsearchTemplate.createIndexIfNotCreated(ElasticsearchTemplate.java:684)
at org.springframework.data.elasticsearch.core.ElasticsearchTemplate.createIndex(ElasticsearchTemplate.java:135)
at org.springframework.data.elasticsearch.repository.support.AbstractElasticsearchRepository.createIndex(AbstractElasticsearchRepository.java:80)
at org.springframework.data.elasticsearch.repository.support.AbstractElasticsearchRepository.<init>(AbstractElasticsearchRepository.java:72)
at org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository.<init>(SimpleElasticsearchRepository.java:36)
各リポジトリ タイプのスキャンは分離する必要がありますが、明らかにそうではありません。どうすればいいですか?