国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

elasticsearch初探

yanbingyun1990 / 1266人閱讀

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

Elasticsearch:一個集群性質的Lucene搜索引擎

因為項目需要實現按關鍵字匹配排序功能,本來想用Lucence的,但是L本身只是一個基礎library,實際應用的話目測代碼量比較大,小公司實現比較吃力,所以使用了elasticsearch,可以集群便于擴展。初次使用,介紹一下簡單的入門,不涉及任何高端技巧,熟悉的朋友不用看了,浪費時間。

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

開始動手:

添加依賴



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

配置








    


注意local="true",表示client啟動在本地,經試驗,沒有什么實際用途,內存占用嚴重,里面在集成店別的東西,很容易內存溢出,僅作演示用。Transport Client配置(其實就是連接遠程服務):









    

#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

我的包結構如下:

ESUser類需要注解@Document(indexName = "user"),指定id,ES的目錄結構大概是/index/type/documentIdESUserRepository需要繼承ElasticsearchCrudRepository,Service是正常的業務代碼,測試代碼:

@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("接機,包房,做飯");

        user = iesUserService.save(user);

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

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

        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("接機 OR 做飯")).withFields("content").build();
        List esUsers = elasticsearchTemplate.queryForList(searchQuery, ESUser.class);
        for (ESUser user : esUsers) {
            LOGGER.info("user:{}, content:{}", user.getId(), user.getContent());
        }
    }
}

這里沒有用service調用,寫了一個簡單的查詢,接機做飯中間的OR表示匹配或的意思,還有很多可以操作的地方,詳細可以參考官方文檔,比如增加一個條件的權重,篩選多余的filed,篩選子類的屬性等等;感覺復雜到不行,不過也對,搜索的時候必然會有這樣的需要,也很符合實際情況。

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/65423.html

相關文章

  • elasticsearch初探

    摘要:摘要是一個基于的搜索服務器。它提供了一個分布式多用戶能力的全文搜索引擎,基于接口。是用開發的,并作為許可條款下的開放源碼發布,是當前流行的企業級搜索引擎。主分片和備份分片上下對應索引的種類結構型索引非結構型索引判斷標準 摘要 ElasticSearch是一個基于Lucene的搜索服務器。它提供了一個分布式多用戶能力的全文搜索引擎,基于RESTful web接口。Elasticsearc...

    LucasTwilight 評論0 收藏0
  • 利用ELK搭建Docker容器化應用日志中心

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

    周國輝 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<