SearchService.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. package com.uas.search.service;
  2. import java.util.List;
  3. import java.util.Map;
  4. import java.util.Set;
  5. import com.uas.search.model.PageParams;
  6. /**
  7. * 搜索服务的接口
  8. *
  9. * @author suntg
  10. * @since 2016年7月29日下午4:58:45
  11. */
  12. public interface SearchService {
  13. /**
  14. * 根据关键字搜索产品类目id
  15. *
  16. * @param keyword
  17. * 关键词
  18. * @return 符合条件的类目id
  19. */
  20. public List<Long> getKindIds(String keyword);
  21. /**
  22. * 根据关键词搜索产品类目
  23. *
  24. * @param keyword
  25. * @return
  26. */
  27. public List<Map<String, Object>> getKinds(String keyword);
  28. /**
  29. * 根据关键词搜索产品品牌id
  30. *
  31. * @param keyword
  32. * 关键词
  33. * @return 符合条件的品牌id
  34. */
  35. public List<Long> getBrandIds(String keyword);
  36. /**
  37. * 根据关键词搜索产品品牌
  38. *
  39. * @param keyword
  40. * @return
  41. */
  42. public List<Map<String, Object>> getBrands(String keyword);
  43. /**
  44. * 根据关键词搜索产品
  45. *
  46. * @param keyword
  47. * @param params
  48. * (可选,默认第1页的20条)
  49. * @return
  50. */
  51. public Map<String, Object> getComponentIds(String keyword, PageParams params);
  52. /**
  53. * 根据产品搜索获取产品类目id的统计
  54. *
  55. * @param keyword
  56. * @param brandId
  57. * (可选)
  58. * @return
  59. */
  60. public Set<Long> getKindIdsBySearchComponent(String keyword, String brandId);
  61. /**
  62. * 根据产品搜索获取产品类目的统计
  63. *
  64. * @param keyword
  65. * @param brandId
  66. * (可选)
  67. * @return
  68. */
  69. public List<Map<String, Object>> getKindsBySearchComponent(String keyword, String brandId);
  70. /**
  71. * 根据产品搜索获取产品品牌id的统计
  72. *
  73. * @param keyword
  74. * @param kindId
  75. * (可选)
  76. * @return
  77. */
  78. public Set<Long> getBrandIdsBySearchComponent(String keyword, String kindId);
  79. /**
  80. * 根据产品搜索获取产品品牌的统计
  81. *
  82. * @param keyword
  83. * @param kindId
  84. * (可选)
  85. * @return
  86. */
  87. public List<Map<String, Object>> getBrandsBySearchComponent(String keyword, String kindId);
  88. /**
  89. * 根据输入获取联想词(包括器件、类目、品牌,按顺序获取,数量不足,才会获取下一个)
  90. *
  91. * @param keyword
  92. * @return
  93. */
  94. public List<String> getSimilarKeywords(String keyword);
  95. /**
  96. * 根据输入的原厂型号获取联想词
  97. *
  98. * @param componentCode
  99. * @return 包括id、uuid、code
  100. */
  101. public List<Map<String, Object>> getSimilarComponents(String componentCode);
  102. /**
  103. * 根据输入的品牌获取联想词
  104. *
  105. * @param brandName
  106. * @return 包括id、uuid、nameCn、nameEn
  107. */
  108. public List<Map<String, Object>> getSimilarBrands(String brandName);
  109. /**
  110. * 根据输入的类目名获取联想词
  111. *
  112. * @param kindName
  113. * @return 包括id、nameCn、level、isLeaf
  114. */
  115. public List<Map<String, Object>> getSimilarKinds(String kindName);
  116. /**
  117. * 根据输入的类目名获取末级类目联想词
  118. *
  119. * @param kindName
  120. * @return 包括id、nameCn、level、isLeaf
  121. */
  122. public List<Map<String, Object>> getSimilarLeafKinds(String kindName);
  123. /**
  124. * 根据输入的类目名和指定的类目级别获取联想词
  125. *
  126. * @param kindName
  127. * @param level
  128. * @return 包括id、nameCn、level、isLeaf
  129. */
  130. public List<Map<String, Object>> getSimilarKindsByLevel(String kindName, Short level);
  131. /**
  132. * 根据类目id、属性id、属性值获取联想词
  133. *
  134. * @param kindId
  135. * 类目id
  136. * @param propertyId
  137. * 属性id
  138. * @param keyword
  139. * (可选) 属性值(部分字符)
  140. * @param topNum
  141. * (可选) 获取的最大数目
  142. * @return 相似的属性值,包括propertyValue
  143. */
  144. public List<Map<String, String>> getSimilarPropertyValues(Long kindId, Long propertyId, String keyword,
  145. Long topNum);
  146. }