成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

elasticsearch初探

yanbingyun1990 / 1310人閱讀

摘要:初次使用,介紹一下簡(jiǎn)單的入門(mén),不涉及任何高端技巧,熟悉的朋友不用看了,浪費(fèi)時(shí)間。最后說(shuō)一下的插件用法,比如常見(jiàn)的功能,安裝,,這是低版本的裝法,新版參考文檔

Elasticsearch:一個(gè)集群性質(zhì)的Lucene搜索引擎

因?yàn)轫?xiàng)目需要實(shí)現(xiàn)按關(guān)鍵字匹配排序功能,本來(lái)想用Lucence的,但是L本身只是一個(gè)基礎(chǔ)library,實(shí)際應(yīng)用的話目測(cè)代碼量比較大,小公司實(shí)現(xiàn)比較吃力,所以使用了elasticsearch,可以集群便于擴(kuò)展。初次使用,介紹一下簡(jiǎn)單的入門(mén),不涉及任何高端技巧,熟悉的朋友不用看了,浪費(fèi)時(shí)間。

項(xiàng)目一直使用的spring-boot-starter,順便找了一下,果然找到有社區(qū)貢獻(xiàn)的集成jar,很厚臉皮的直接拿過(guò)來(lái)用了,項(xiàng)目地址:https://github.com/spring-projects/spring-data-elasticsearch,注意:這里的client版本支持的是1.5.2,官方最新版本已經(jīng)到2.1了,社區(qū)版本目前支持較低,反正我是初學(xué),先學(xué)會(huì)使用。

開(kāi)始動(dòng)手:

添加依賴



    org.springframework.data
    spring-data-elasticsearch
    1.3.0.RELEASE
# gradle
dependencies {
    compile "org.springframework.boot:spring-boot-starter-data-elasticsearch"
}

配置








    


注意local="true",表示client啟動(dòng)在本地,經(jīng)試驗(yàn),沒(méi)有什么實(shí)際用途,內(nèi)存占用嚴(yán)重,里面在集成店別的東西,很容易內(nèi)存溢出,僅作演示用。Transport Client配置(其實(shí)就是連接遠(yuǎn)程服務(wù)):









    

#java config:
#application.properties:

esearch.host=192.168.199.150
esearch.port=9300
@Configuration
@EnableElasticsearchRepositories(basePackages = "org/aybx/wishes/user/elastic")
public class ElasticSearchConfig {

    @Value("${esearch.port}") int port;
    @Value("${esearch.host}") String hostname;

    @Bean
    public ElasticsearchOperations elasticsearchTemplate() {
        return new ElasticsearchTemplate(client());
    }

    @Bean
    public Client client(){
        TransportClient client= new TransportClient();
        TransportAddress address = new InetSocketTransportAddress(hostname, port);
        client.addTransportAddress(address);
        return client;
    }
}

basePackages包含繼承spring-dataRepositories

我的包結(jié)構(gòu)如下:

ESUser類需要注解@Document(indexName = "user"),指定id,ES的目錄結(jié)構(gòu)大概是/index/type/documentId,ESUserRepository需要繼承ElasticsearchCrudRepository,Service是正常的業(yè)務(wù)代碼,測(cè)試代碼:

@RunWith(value = SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = BootStartup.class)
@WebAppConfiguration
@ActiveProfiles("scratch")
public class ESUserServiceTest {

    private static final Logger LOGGER = LoggerFactory.getLogger(ESUserServiceTest.class);

    @Autowired
    IESUserService iesUserService;

    @Autowired
    private ElasticsearchTemplate elasticsearchTemplate;

    @Test
    public void testSave() throws Exception {
        ESUser user = new ESUser();
        user.setId(1L);
        user.setContent("接機(jī),包房,做飯");

        user = iesUserService.save(user);

        LOGGER.info("user, {}", JSON.toJSONString(user));

        ESUser user1 = new ESUser();
        user1.setId(2L);
        user1.setContent("接機(jī),包房");

        user1 = iesUserService.save(user1);

        LOGGER.info("user1, {}", JSON.toJSONString(user1));

        ESUser user2 = new ESUser();
        user2.setId(3L);
        user2.setContent("包房,做飯");

        user2 = iesUserService.save(user2);

        LOGGER.info("user2, {}", JSON.toJSONString(user2));
    }

    @Test
    public void testFind() throws Exception {
        SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(queryStringQuery("接機(jī) OR 做飯")).withFields("content").build();
        List esUsers = elasticsearchTemplate.queryForList(searchQuery, ESUser.class);
        for (ESUser user : esUsers) {
            LOGGER.info("user:{}, content:{}", user.getId(), user.getContent());
        }
    }
}

這里沒(méi)有用service調(diào)用,寫(xiě)了一個(gè)簡(jiǎn)單的查詢,接機(jī)做飯中間的OR表示匹配或的意思,還有很多可以操作的地方,詳細(xì)可以參考官方文檔,比如增加一個(gè)條件的權(quán)重,篩選多余的filed,篩選子類的屬性等等;感覺(jué)復(fù)雜到不行,不過(guò)也對(duì),搜索的時(shí)候必然會(huì)有這樣的需要,也很符合實(shí)際情況。

最后說(shuō)一下ES的插件用法,比如常見(jiàn)的monitor功能:Marvel,安裝,/bin/plugin install elasticsearch/marvel/latest,這是低版本的裝法,新版參考文檔

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/65423.html

相關(guān)文章

  • elasticsearch初探

    摘要:摘要是一個(gè)基于的搜索服務(wù)器。它提供了一個(gè)分布式多用戶能力的全文搜索引擎,基于接口。是用開(kāi)發(fā)的,并作為許可條款下的開(kāi)放源碼發(fā)布,是當(dāng)前流行的企業(yè)級(jí)搜索引擎。主分片和備份分片上下對(duì)應(yīng)索引的種類結(jié)構(gòu)型索引非結(jié)構(gòu)型索引判斷標(biāo)準(zhǔn) 摘要 ElasticSearch是一個(gè)基于Lucene的搜索服務(wù)器。它提供了一個(gè)分布式多用戶能力的全文搜索引擎,基于RESTful web接口。Elasticsearc...

    LucasTwilight 評(píng)論0 收藏0
  • 利用ELK搭建Docker容器化應(yīng)用日志中心

    摘要:概述應(yīng)用一旦容器化以后,需要考慮的就是如何采集位于容器中的應(yīng)用程序的打印日志供運(yùn)維分析。 showImg(https://segmentfault.com/img/remote/1460000014146680); 概述 應(yīng)用一旦容器化以后,需要考慮的就是如何采集位于Docker容器中的應(yīng)用程序的打印日志供運(yùn)維分析。典型的比如 SpringBoot應(yīng)用的日志 收集。本文即將闡述如何利...

    周國(guó)輝 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<