SpringBoot集成ElasticSearch笔记

1.在虚拟机安装ElasticSearch遇到的问题

(1)don't run elasticsearch as root.

       参考https://blog.csdn.net/mengfei86/article/details/51210093

因为安全问题elasticsearch 不让用root用户直接运行,所以要创建新用户

第一步:liunx创建新用户  adduser XXX    然后给创建的用户加密码 passwd XXX    输入两次密码。

第二步:切换刚才创建的用户 su XXX  然后执行elasticsearch  会显示Permission denied 权限不足。

第三步:给新建的XXX赋权限,chmod 777 *  这个不行,因为这个用户本身就没有权限,肯定自己不能给自己付权限。所以要用root用户登录付权限。

第四步:root给XXX赋权限,chown -R XXX /你的elasticsearch安装目录。

然后执行成功。

(2)学习视频参考 https://www.imooc.com/video/15764

(3)node安装  http://www.cnblogs.com/lpbottle/p/7733397.html

2. 使用的方式主要两种:
① 一种是经过 SpringData 封装过的,直接在 dao 接口继承 ElasticsearchRepository 即可

@Component
public interface ProductDocumentRepository extends ElasticsearchRepository<ProductDocument,String> {
}

② 一种是经过 Spring 封装过的,直接在 Service/Controller 中引入该 bean 即可

在pom中引入jar包

配置文件

# elasticsearch.yml 文件中的 cluster.name
spring.data.elasticsearch.cluster-name=my-application
# elasticsearch 调用地址,多个使用“,”隔开
spring.data.elasticsearch.cluster-nodes=127.0.0.1:9300

 

    @Autowired
    ElasticsearchTemplate elasticsearchTemplate;

 

/**
 * 高亮显示,返回分页
 * @auther: zhoudong
 * @date: 2018/12/18 10:29
 */
@Override
public Page<Map<String, Object>> queryHitByPage(int pageNo,int pageSize, String keyword, String indexName, String... fieldNames) {
    // 构造查询条件,使用标准分词器.
    QueryBuilder matchQuery = createQueryBuilder(keyword,fieldNames);

    // 设置高亮,使用默认的highlighter高亮器
    HighlightBuilder highlightBuilder = createHighlightBuilder(fieldNames);

    // 设置查询字段
    SearchResponse response = elasticsearchTemplate.getClient().prepareSearch(indexName)
            .setQuery(matchQuery)
            .highlighter(highlightBuilder)
            .setFrom((pageNo-1) * pageSize)
            .setSize(pageNo * pageSize) // 设置一次返回的文档数量,最大值:10000
            .get();


    // 返回搜索结果
    SearchHits hits = response.getHits();

    Long totalCount = hits.getTotalHits();
    Page<Map<String, Object>> page = new Page<>(pageNo,pageSize,totalCount.intValue());
    page.setList(getHitList(hits));
    return page;
}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章