原创 array_merge 和+的區別

php有2個函數常用語數組合並,他們是array_merge和+.本節來講一下兩者的區別. 索引數組 $arr1 = [1 => 'one', 3 => 'three']; $arr2 = [1 => 'new one', 6 => 'si

原创 Go遞歸

所謂的遞歸就是函數調用自身,本文將通過幾個經典的算法來講解go遞歸的使用 語法格式如下: func recursion() { recursion() /* 函數調用自身 */ } func main() { recursion

原创 Go Map

Map 是一種無序的鍵值對的集合。Map 最重要的一點是通過 key 來快速檢索數據,key 類似於索引,指向數據的值。 Map 是一種集合,所以我們可以像迭代數組和切片那樣迭代它。不過,Map 是無序的,我們無法決定它的返回順序,這是因爲

原创 Go切片

你可以聲明一個未指定大小的數組來定義切片: var identifier []type 切片不需要說明長度。 或使用make()函數來創建切片: var slice1 []type = make([]type, len) 也可以簡

原创 Go範圍range

Go 語言中 range 關鍵字用於for循環中迭代數組(array)、切片(slice)、通道(channel)或集合(map)的元素。在數組和切片中它返回元素的索引值,在集合中返回 key-value 對的 key 值。 實例 pack

原创 Go函數

函數聲明 func 函數名(參數) 返回類型 { 函數體 } 函數調用 包名.函數名(參數) //如果調用包內的函數則直接 函數名.(參數) package main func main() {

原创 Go指針

一個指針變量可以指向任何一個值的內存地址。 類似於變量和常量,在使用指針前你需要聲明指針。指針聲明格式如下: var var_name *var-type var-type 爲指針類型,var_name 爲指針變量名,* 號用於指定變量是

原创 Go語言常量

常量中的數據類型只可以是布爾型、數字型(整數型、浮點型和複數)和字符串型。 常量的定義格式: const 變量名 變量類型 = 變量值 你可以省略類型說明符 [type],因爲編譯器可以根據變量的值來推斷其類型。 顯式類型定義: cons

原创 Go語言變量

Go 語言變量名由字母、數字、下劃線組成,其中首個字母不能爲數字。 聲明變量的一般形式是使用 var 關鍵字: var 變量名 變量類型 單個變量聲明的形式 1.指定變量類型,聲明後若不賦值,使用默認值。 var v_name v_typ

原创 Go語言環境搭建

安裝包下載地址爲:https://golang.org/dl/ 1、下載源碼包:go1.8.linux-amd64.tar.gz。 2、將下載的源碼包解壓至 /usr/local目錄。 tar -C /usr/local -xzf go1.

原创 ElasticSearch分頁查詢

和 SQL 使用 LIMIT 關鍵字返回單個 page 結果的方法相同,Elasticsearch 接受 from 和 size 參數: size 顯示應該返回的結果數量,默認是 10 之前是20 from 顯示應該跳過的初始結果數量,默認

原创 ElasticSearch多索引多類型檢索

前幾節我們一直在介紹單個索引的檢索情況,如果想在一個或多個特殊的索引並且在一個或者多個特殊的類型中進行搜索呢?我們可以通過在URL中指定特殊的索引和類型達到這種效果,如下所示: /_search 在所有的索引中搜索所有的類型 /gb

原创 ElasticSearch輕量查詢

ES提供了一種輕量級的檢索方式來檢索文檔,和前幾篇介紹的json形式查詢不同,他是採用query_string形式檢索。下面通過實例來講解吧 GET /user/introduce/_search?q=name:lucy 在user索引的

原创 ElasticSearch文檔操作

本節我們來講解一下ES中文檔的相關操作 一:索引/更新文檔 ES中索引和更新文檔都是PUT操作。 PUT /{IndexName}/{TypeName}/{ID} 比如我又一條測試文檔如下: { "took" : 1, "time

原创 ElasticSearch檢索返回分析

檢索,可以說是ES最基本也是最強大的功能。我們可以將一個 JSON 文檔扔到 Elasticsearch 裏,然後根據 ID 檢索。但 Elasticsearch 真正強大之處在於可以從無規律的數據中找出有意義的信息——從“大數據”到“大信