一、加入依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-solr</artifactId> </dependency>
二、在application.yml中:
spring:
data:
solr:
host: http://192.168.2.155:8983/solr/ik_core
三、测试:
@RunWith(SpringRunner.class) @SpringBootTest public class MystoreSearchServiceApplicationTests { @Autowired private SolrClient client; @Test public void testQueryDataByHighLighting() { SolrQuery query = new SolrQuery(); //设置查询内容 query.setQuery("双卡"); //设置分页 query.setStart(0); query.setRows(10); //设置复制域 query.set("df", "t_product_keywords"); //开启高亮 query.setHighlight(true); //添加高亮字段 query.addHighlightField("t_product_name"); //设置高亮的前缀和后缀 query.setHighlightSimplePre("<span style=‘color:red;‘>"); query.setHighlightSimplePost("</span>"); try { QueryResponse response = client.query(query); // 结果集 SolrDocumentList results = response.getResults(); // 高亮部分 Map<String, Map<String, List<String>>> highlighting = response.getHighlighting(); for (SolrDocument result : results) { Object id = result.getFieldValue("id"); // 根据id拿当前字段的高亮部分; Map<String, List<String>> stringListMap = highlighting.get(id); if (stringListMap != null) { List<String> t_product_name = stringListMap.get("t_product_name"); String s = t_product_name.get(0); System.out.println(s); } } } catch (SolrServerException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } @Test public void testQueryData() { SolrQuery query = new SolrQuery(); //设置查询内容 query.setQuery("双卡"); //设置分页 query.setStart(0); query.setRows(10); //设置复制域 query.set("df", "t_product_keywords"); try { QueryResponse response = client.query(query); SolrDocumentList results = response.getResults(); for (SolrDocument result : results) { System.out.println(result); } } catch (SolrServerException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } @Test public void testDeleteData() { String query = "id:003"; try { client.deleteByQuery(query); client.commit(); } catch (SolrServerException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } @Test public void testAddData() { SolrInputDocument document = new SolrInputDocument(); document.addField("id", "003"); document.addField("t_product_name", "huawei p30 牛逼 荣耀之最 双卡双待"); document.addField("t_product_age", "1212"); try { client.add(document); client.commit(); } catch (SolrServerException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
原文:https://www.cnblogs.com/Tractors/p/11323982.html