.org做商业网站,营销推广有哪些公司,网络舆情软件免费入口,企业静态网站模板type会被弃用 #xff0c;就是说之后的elasticSearch中只会存在 索引#xff08;indices#xff09; 和 一行#xff08;document#xff09; 和字段#xff08;fields#xff09;
elasticSearch 和solr的区别最大的就是 es对应的 是 json的格式 。 solr有xml和josn等… type会被弃用 就是说之后的elasticSearch中只会存在 索引indices 和 一行document 和字段fields
elasticSearch 和solr的区别最大的就是 es对应的 是 json的格式 。 solr有xml和josn等等。但是es更强 核心数据原理 对于某个字段搜索出来的结果有很多 更具相似的设置对应的文档的权重进行排序。
就像是这样建立索引 ik分词器如果想要自定义的搜索的标签可以自行加到ik分词器中。ik分词器作为一个插件需要手动的添加到elasticSearch中的plugin中。
分词算法有ik_smart 和ik_max_word 其中ik_smart为最少切分 ik_max_word是最细粒度切分。
ik_max_word能够将所有的可能都展示出来 ik_smart 展示的比较少 如何定义自定义的分词 可以看见 狂神说不是一个分词。
可以在ik分词器中自定义一个 狂神说
之后启动 es 和kibana 的bat 再npm run start 页面head 这样狂神说就变成了一个分词 es是支持Rest风格的api 这里进行添加数据 这里尝试在同一个索引库中添加 类属于不同类型 的数据 结论直接报错。 说在7.0版本上一个索引库只能够有一个类型 。可以看出 这个类型没有任何作用。 对应如前面说所的type这个字段在8.0将会被删除。 其实这玩意本质就是一个数据库。
get 这就不用说了 上手springboot整合es Test
SpringBootTest
class JueJiuApplicationTests {
Autowired
private RedisTemplate redisTemplate;
AutowiredTokenGenerate tokenGenerate;AutowiredRestHighLevelClient highLevelClient;AutowiredEssayService essayService;Testvoid contextLoads() {}/**处理 Essay的数据** 这里将mysql的数据都batch到es中** */Testvoid mysqlAndES(){ListEssay list essayService.list();list.forEach(one-{System.out.println(one.toString());});}Testvoid createIndex() throws IOException {/*** 创建一个索引* */String indexName juejiu;CreateIndexRequest createIndexRequest new CreateIndexRequest(indexName);highLevelClient.indices().create( createIndexRequest , RequestOptions.DEFAULT);/**查询索引的信息* */// GetIndexRequest getIndexRequest new GetIndexRequest(indexName);
// GetIndexResponse getIndexResponse highLevelClient
// .indices().get(getIndexRequest, RequestOptions.DEFAULT);
// System.out.println(----------------打印出索引的信息 getIndexResponse);/*** 删除索引信息* */
// DeleteIndexRequest deleteIndexRequest new DeleteIndexRequest(indexName) ;
// AcknowledgedResponse delete highLevelClient.indices().delete(deleteIndexRequest, RequestOptions.DEFAULT);
// System.out.println(----------------删除出索引的信息 delete.toString());
// System.out.println(----------------删除出索引的信息 delete.isAcknowledged());}Testvoid saveToES() throws IOException {String indexName juejiu;IPageEssayDto iPage new Page();iPage.setCurrent(1);iPage.setSize(100);EssayVo essayVo new EssayVo();IPageEssayDto page essayService.getPage(iPage, essayVo);BulkRequest bulkRequest new BulkRequest();page.getRecords().forEach(one-{IndexRequest indexRequest new IndexRequest().source(JSON.toJSONString(one), XContentType.JSON).index(indexName);bulkRequest.add(indexRequest);});BulkResponse bulkResponse highLevelClient.bulk(bulkRequest, RequestOptions.DEFAULT);System.out.println(---------bulk的结果 (!bulkResponse.hasFailures()));}Test/***/void searchResult() throws IOException {String indexName juejiu;SearchRequest searchRequest new SearchRequest(indexName);SearchSourceBuilder searchSourceBuilder new SearchSourceBuilder();Query query new Query(4,1);searchSourceBuilder.from(query.getCurrent());searchSourceBuilder.size(query.getSize());/**** 添加查询条件* */searchRequest.source(searchSourceBuilder);SearchResponse search highLevelClient.search(searchRequest, RequestOptions.DEFAULT);System.out.println(search);System.out.println(-----------);System.out.println(search.getHits());search.getHits().forEach(one-{System.out.println(单个的hitone.getSourceAsString());});}springboot整合ES实现 论坛的 es替换查询 String indexName juejiu;SearchRequest searchRequest new SearchRequest(indexName);SearchSourceBuilder searchSourceBuilder new SearchSourceBuilder();searchSourceBuilder.from(query.getCurrent());searchSourceBuilder.size(query.getSize());/**** 添加查询条件* */searchRequest.source(searchSourceBuilder);SearchResponse search highLevelClient.search(searchRequest, RequestOptions.DEFAULT);/*** 暂停原代码 不返回page对象** */
//
// System.out.println(-----------------------------query.toString());
// System.out.println(-----------------------------essayVo.toString());
// IPageEssayDto iPage new Page();
// iPage.setCurrent(query.getCurrent());
// iPage.setSize(query.getSize());
// IPageEssayDto list essayService.getPage(iPage,essayVo);
// HashMap hashMap new HashMap();
// list.getRecords().stream().map(one - {
// Date createTime one.getCreateTime();
// String essayTitle one.getEssayTitle();
// hashMap.put(createTime, essayTitle);
// return null;
// }).collect(Collectors.toList());
// System.out.println(----------------------------------------);
// System.out.println(hashMap);IPageEssayDto iPage new Page();ListEssayDto list new ArrayList();search.getHits().forEach(one-{MapString, Object sourceAsMap one.getSourceAsMap();EssayDto essayDto new EssayDto();essayDto.setEssayId((Integer) sourceAsMap.get(essayId));essayDto.setEssayTitle(sourceAsMap.get(essayTitle).toString());essayDto.setEssayContext(sourceAsMap.get(essayContext).toString());essayDto.setEssayPageViewTimes((Integer) sourceAsMap.get(essayPageViewTimes));essayDto.setCreateTime(Date.from(LocalDateTime.parse(sourceAsMap.get(createTime).toString(), DateTimeFormatter.ofPattern(yyyy-MM-dd HH:mm:ss)).atZone(ZoneId.systemDefault()).toInstant()));MapString, Object userMap (MapString, Object) sourceAsMap.get(user);User user new User();user.setId((Integer) userMap.get(id));user.setAccount(userMap.get(account).toString());user.setPassword(userMap.get(password).toString());user.setAvatar(userMap.get(avatar).toString());user.setPhone(userMap.get(phone).toString());user.setRealName(userMap.get(realName).toString());user.setEmail(userMap.get(email).toString());user.setSex((Integer) userMap.get(sex));
// user.setBirthday(String.valueOf(Date.parse(userMap.get(birthday).toString())));essayDto.setUser(user);MapString, Object tagMap (MapString, Object) sourceAsMap.get(tag);Tag tag new Tag();tag.setTagId((Integer) tagMap.get(tagId));tag.setTagName(tagMap.get(tagName).toString());essayDto.setTag(tag);essayDto.setUserId((Integer) sourceAsMap.get(userId));essayDto.setEssayPageViewTimes((Integer) sourceAsMap.get(essayPageViewTimes));essayDto.setCreateTime(Date.from(LocalDateTime.parse(sourceAsMap.get(createTime).toString(), DateTimeFormatter.ofPattern(yyyy-MM-dd HH:mm:ss)).atZone(ZoneId.systemDefault()).toInstant()));essayDto.setEssayId((Integer) sourceAsMap.get(essayId));essayDto.setUser(user);essayDto.setTag(tag);list.add(essayDto);});iPage.setRecords(list);iPage.setCurrent(query.getCurrent());iPage.setSize(query.getSize());return Result.SUCCESS(iPage); 单体的es 实现easy 后续提供更新策略 和多条件等结果