elasticsearch+aliyun+java

ElasticSearch 

(1)安裝

本文以單機爲例。

更新源;apt-get安裝

參考https://blog.csdn.net/dqchouyang/article/details/50498549

【剛纔查了一下,阿里雲有自己的es系統。好吧。可以直接用了】

(2)啓動和關閉

sudo -i service elasticsearch start

sudo -i service elasticsearch stop

(3)開放端口

開放es的端口,允許外網訪問。需要修改配置文件。vi /etc/elasticsearch/elasticsearch.yml

開放阿里雲機器的端口,允許外網訪問。修改阿里雲後臺的安全組

(4)使用java sdk實現添加和索引

es的各種demo演示,https://blog.csdn.net/xiaolong2230/article/details/81316226

主要是pom依賴和mvn版本問題。花費了半天時間。

es版本,和服務器的版本保持一致。

本文使用jest。

mvn需要3.6以上。[apache-maven-3.6.1]

<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>1.2.7</version>
		</dependency>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.12</version>
		</dependency>
		<dependency>
			<groupId>org.mortbay.jetty</groupId>
			<artifactId>jetty</artifactId>
			<version>6.1.26</version>
		</dependency>
		<dependency>
			<groupId>org.elasticsearch</groupId>
			<artifactId>elasticsearch</artifactId>
			<version>5.5.1</version>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.10</version>
		</dependency>
		<dependency>
			<groupId>org.elasticsearch</groupId>
			<artifactId>elasticsearch</artifactId>
			<version>5.5.1</version>
		</dependency>
		<dependency>
			<groupId>io.searchbox</groupId>
			<artifactId>jest</artifactId>
			<version>0.1.7</version>
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.6</version>
		</dependency>
		<dependency>
			<groupId>commons-logging</groupId>
			<artifactId>commons-logging</artifactId>
			<version>1.2</version>
		</dependency>
		<dependency>
			<groupId>com.google.code.gson</groupId>
			<artifactId>gson</artifactId>
			<version>2.3.1</version>
		</dependency>
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>1.2.7</version>
		</dependency>
		
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-api</artifactId>
			<version>2.7</version>
		</dependency>
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-core</artifactId>
			<version>2.7</version>
		</dependency>
		<dependency>
			<groupId>org.apache.lucene</groupId>
			<artifactId>lucene-memory</artifactId>
			<version>6.6.0</version>
		</dependency>
        <dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<version>2.9.9</version>
		</dependency>


		<dependency>
			<groupId>joda-time</groupId>
			<artifactId>joda-time</artifactId>
			<version>2.9.5</version>
		</dependency>
		<dependency>
			<groupId>org.apache.lucene</groupId>
			<artifactId>lucene-queryparser</artifactId>
			<version>6.6.0</version>
		</dependency>

 

 


	// elastic search在6.x版本調整了, 一個index只能存儲一種type
創建客戶端

		JestClientFactory factory = new JestClientFactory();
		factory.setHttpClientConfig(new HttpClientConfig.Builder("http://" + url + ":" + port)
				.gson(new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss").create()).multiThreaded(true)
				.readTimeout(10000).build());
		jestClient = factory.getObject();
public void index(Object obj) throws IOException {
		Index index = new Index.Builder(obj).index(_index).type(_type).build();
		JestResult jestResult = jestClient.execute(index);
		log.info(jestResult.getJsonString());
	}
public void queryAll() throws IOException {
		SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
		searchSourceBuilder.query(QueryBuilders.matchAllQuery());
		Search search = new Search.Builder(searchSourceBuilder.toString()).addIndex(_index).build();
		SearchResult result = jestClient.execute(search);
		log.info("查詢全部,共找到:" + result.getTotal() + "記錄!");
		List<Hit<Object, Void>> hits = result.getHits(Object.class);
		for (Hit<Object, Void> hit : hits) {
			Object source = hit.source;
			System.out.println(source);
		}
	}

 

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