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;
}

 

 

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