【发布时间】:2016-10-04 12:20:56
【问题描述】:
目前我正在使用 ProductSearch 类创建 Elasticsearch 存储库,通过添加仅带有 indexName 的 @document 注释,类型应该为空,因为我没有设法向 indexname 添加任何类型。但是当我调用 productSearchRepository.findByName(query) 时,它会在 indexName 中搜索 type = "productsearch",这是代码的 sn-p。
@Document(indexName = "product")
public class ProductSearch extends Product {
}
这里是 productSearch 存储库
@Repository
public interface ProductSearchRepository extends ElasticsearchRepository<ProductSearch, Long> {
@Query("{\"match\": {\"name.en\" : \"?0\"}}")
List<ProductSearch> findByName(String name);
}
这是来自 elasticsearch 的日志,显示它添加了一个 type = "productsearch"
[2016-10-04 14:03:53,634][WARN ][index.search.slowlog.query] [Apache Kid] [product][1] took[112.3micros], took_millis[0], types[productsearch], stats[], search_type[DFS_QUERY_THEN_FETCH], total_shards[5], source[{"from":0,"size":10,"query_binary":"eyJtYXRjaCI6IHsibmFtZS5lbiIgOiAiYWJjIn19"}], extra_source[],
[2016-10-04 14:03:53,634][WARN ][index.search.slowlog.query] [Apache Kid] [product][2] took[243.9micros], took_millis[0], types[productsearch], stats[], search_type[DFS_QUERY_THEN_FETCH], total_shards[5], source[{"from":0,"size":10,"query_binary":"eyJtYXRjaCI6IHsibmFtZS5lbiIgOiAiYWJjIn19"}], extra_source[],
[2016-10-04 14:03:53,634][WARN ][index.search.slowlog.query] [Apache Kid] [product][3] took[154.2micros], took_millis[0], types[productsearch], stats[], search_type[DFS_QUERY_THEN_FETCH], total_shards[5], source[{"from":0,"size":10,"query_binary":"eyJtYXRjaCI6IHsibmFtZS5lbiIgOiAiYWJjIn19"}], extra_source[],
[2016-10-04 14:03:53,634][WARN ][index.search.slowlog.query] [Apache Kid] [product][4] took[161.5micros], took_millis[0], types[productsearch], stats[], search_type[DFS_QUERY_THEN_FETCH], total_shards[5], source[{"from":0,"size":10,"query_binary":"eyJtYXRjaCI6IHsibmFtZS5lbiIgOiAiYWJjIn19"}], extra_source[],
我需要的不是为我的文档创建类型。
任何帮助将不胜感激。 提前致谢。
【问题讨论】:
-
A(映射)类型始终是强制性的,如果不指定映射类型,您不能将文档存储在索引中。此外,这些日志显示以下查询正在运行
{"match": {"name.en" : "abc"}}(从query_binary解码)并且速度很慢(即index.search.slowlog.query)。 -
但是没有任何解决方案可以创建这样的存储库查询
/product/_search而不是/product/productsearch/_search,请进一步解释日志缓慢是什么意思? -
嗨!你想通了吗?似乎 spring-es 创建了一个类型,但只是按名称。但是我需要为该类型明确命名一些字段(因为排序不起作用,如果类型未知,例如,如果还没有文档被存储)
标签: java spring elasticsearch spring-data-elasticsearch