'Elastic Search/02. Setup'에 해당되는 글 14건

  1. 2015/05/13 용비 12. URL-based Access Control
  2. 2015/05/13 용비 11. Common Options - 02
  3. 2015/05/13 용비 11. Common Options - 01
  4. 2015/05/13 용비 10. Multiple Indices
  5. 2015/05/12 용비 09. API Conventions

많은 사람들이 URL기반으로 Elasticsearch index 접근하기 위한 Access Control 위해서 Proxy 사용한다. Multi-search, multi-get, bulk request 위해서 사용자는 특정 index 정보는 URL, 개별 request 정보는 request body 담는 것을 선택한다. 이것은 URL 기반 Access Control 어렵게 한다.


URL 있는 특정 index overrding하는 것을 방지하기 위하여 config.yml 파일에 다음 설정을 추가하라.


rest.action.multi.allow_explicit_index: false


기본값은 true지만, false 설정했을 때는 Elasticsearch request body 명시된 특정 index 있다면 request reject한다.

받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://www.yongbi.net/rss/response/722

Distance Units

거리가 필요할 경우, 예를 들어 Geo Distance Filter distance parameter 같은 경우에 아무것도 단위가 명시되어 있지 않을 경우에는 기본적으로 미터단위이다. "1km" "2mi" (miles) 같이 다른 단위로도 distance 명시할 있다. 전체 리스트는 다음과 같다.


mi or miles : Mile

yd or yards : Yard

ft or feet : Feet

in or inch : Inch

km or kilometers : Kilometer

m or meters : Meter

cm or centimeters : Centimeter

mm or millimeters : Millimeter

NM, nmi or nauticalmiles : Nautical Mile


Geohash Cell Filter precision (정밀도) parameter 위에 명시된 unit으로 거리를 표시한다. 하지만, unit 명시되지 않았을 경우에는 geohash 길이로 precision 해석한다.


Fuzziness

어떤 query API fuzziness parameter 사용하여 부정확한 fuzzy matching을 지원한다. Fuzziness parameter query 사용된 field type 따른 context 따른다.


Numeric, date and IPv4 fields

숫자나 날짜, IPv4 field query 있을 , fuzziness +/- margin으로 해석한다. 마치 다음과 같은 Range Query처럼 동작한다.


-fuzziness <= field value <= +fuzziness


Fuzziness parameter 2 2.0처럼 숫자로 표시되어야 한다. Date field 밀리초단위의 long값으로 해석된다. 하지만, 시간 단위를 가진 string - "1h" 같은 - 단위에서 의미하는 값으로 받아들인다. Ip field long이나 다른 IPv4 주소 (long으로 변환될 있는) 수용한다.


String fields

Query string 사용되었을 경우, fuzziness Levenshtein Edit Distance (http://en.wikipedia.org/wiki/Levenshtein_distance) - 하나의 문자가 숫자로 변경되는 - 처리된다.


Fuzziness parameter 다음과 같이 정리할 있다.

0, 1, 2 : Levenshtein Edit Distance 허용되는 최대값

AUTO : 길이에 따라 edit distance 계산함.

0..1 : 정확히 일치하는 경우

1..5 : one edit 허용

>5 : two edit 허용

AUTO fuzziness 대한 최적값을 계산한다.

0.1..1.0 : 공식을 통해서 edit distance 계산한다. Length(term) * (1.0 - fuzziness). 예를 들어 길이 10 가진 fuzziness 0.6이면 edit distance 10 * (1.0 - 0.6) = 4.0이다.


[NOTE]

모든 API 대한 Fuzzy Like This Query (http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-flt-query.html) 측면에서 edit distance 최대값은 2이다.


Result Casing

모든 REST API case parameter 가질 있다. camelCase 설정될 때는 결과에 속한 모든 field name camel casing 있는 결과를 리턴할 것이다. 아니면 underscore 사용된 결과가 리턴될 것이다. Index source document에는 적용되지 않는다.


JSONP

사용가능할 , 모든 REST API JSONP 결과 , callback parameter 결과를 받을 있다. Config.yaml 파일에 다음 항목을 추가함으로 수행 가능하다.


http.jsonp.enable:true


사용가능하도록 설정되었을 , elasticsearch 아키텍처 때문에 security risk 야기한다는 것에 주의하라. 특정 환경하에서는 attacker 여러분의 브라우저를 이용해 JSONP request 만들어서 Elasticsearch Server 데이터를 탈취할 있다.


Request body in query string

POST 아닌 request 대해서 body 수용하지 않는 library 대해서 string parameter source query 이용해 body 전송할 있다.

받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://www.yongbi.net/rss/response/721

다음 options들은 모든 REST API 적용할 있다.


Pretty Results

Request 말미에 ?pretty=true 추가했을 때는 JSON 예쁜 형태로 리턴된다. (단지 디버깅 목적으로만 사용하라!) 또다른 옵션으로 ?format=yaml 설정하면 읽기 쉬운 yaml 형태로 결과가 리턴될 것이다.


Human Readable Output

통계는 사람에게 적합한 형태 (예를 들어 "exist_time":"1h" or "size":"1kb") 컴퓨터에게 적합한 형태 (예를 들어 "exists_time_in_millis": 3600000 or "size_in_bytes": 1024) 리턴된다. 사람이 읽기에 적합한 형태의 값들은 query string ?human=false 추가하여 기능을 있다. 이것은 통계 결과가 사람보다는 모니터링 툴에 의해 다루어질 의미가 있다. 기본적으로 human flag false이다.


Flat Settings

Flat_settings flag 설정값들을 제시하는 효과가 있다. Flag_settigns값이 true일 , 설정값들이 flat format 형태로 리턴된다.

{
 
"persistent" : { },
 
"transient" : {
  
"discovery.zen.minimum_master_nodes" : "1"
 
}
}


Flat_settings false , 설정값들은 사람이 읽을 있는 구조화된 형태로 리턴된다.

{
 
"persistent" : { },
 
"transient" : {
  
"discovery" : {
    
"zen" : {
      
"minimum_master_nodes" : "1"
    
}
  
}
 
}
}


기본적으로 flat_settings 값은 false이다.


Parameters

REST parameter(HTTP 사용할 , HTTP URL 사용되는 parameter) underscore 사용한다. (underline 사용)


Boolean Values

모든 REST API parameter들은 (request parameter JSON body) boolean "false" 해당하는 값으로 false, 0, no, off 사용할 있다. 이외 다른 값들은 모두 "true" 간주한다. Index document내에서 boolean field 다루는 것과는 아무 상관이 없다는 것에 유의하라. (단지 request parameter json body에서만 이렇게 다룬다는 뜻임.)


Number Values

모든 REST API JSON number type 뿐만 아니라 string으로 number 값을 표시하는 것을 지원한다.


Time Units

Duration 필요할 경우, 예를 들어 timeout parameter 경우에 duration 밀리초를 나타내는 숫자로 표시할 있다. 혹은 2일의 경우 2d 같이 표시할 수도 있다. 지원되는 단위는 다음과 같다.


y : Year

M : Month

w : Week

d : Day

h : Hour

m : Minute

s : Second

받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://www.yongbi.net/rss/response/720

Index parameter 가리키는 대부분의 API 간단히 test1, test2, test3 notation 사용하여 (혹은 모든 index 대해서는 _all) 여러 index 걸쳐 실행될 있다. 물론 wildcard 지원한다. 예를 들어 test* 같이 사용할 수도 있다. 또한 +기호를 추가의 의미로, -기호를 삭제의 의미로 사용할 수도 있다. 예를 들어 +test*, -test3 같이 사용할 있다.


모든 multiple indices API 다음과 같은 url 사용되는 string parameter 지원한다.


  • Ignore_unavailable : 특정 index 사용불가능하다면 무시하도록 한다. 존재하지 않거나 closed index 대해서도 적용할 있다. 값은 true | false 갖는다.
  • Allow_no_indices : wildcard index 표현에 맞는 index 결과가 없다면 실패라고 설정한다. True false값을 가질 있다. 예를 들어, wildcard 표현으로 foo* 해당하는 index 없다면 요청에 대해서는 fail 것이다. 설정은 또한 _all, *, index 전혀 없을 때도 적용할 있다. 또한 Closed index 대한 Alias에도 적용할 있다.
  • Expand_wildcards : 어떤 종류의 구체적인 index 대해서도 wildcard index 표현을 확장할 있다. 예를 들어 open이라고 사용하면, wildcard 표현은 단지 open index 대해서만 확장된다. 반대로 closed 사용되면 wildcard 표현은 단지 closed index에만 확장된다. 또한 모든 index 대해서 두가지 (open, closed) 모두 사용할 수도 있다.

만약 none 사용하면 wildcard 표현은 사용할 없다. All 경우에는 모든 index 대해서 wildcard 표현을 사용할 있다.


parameter 기본 설정은 사용되는 api 달려 있다.


[NOTE]

Document API (http://www.elastic.co/guide/en/elasticsearch/reference/current/docs.html) single-index alias API (http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html) 같은 Single Index API multiple index 지원하지 않는다.

받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://www.yongbi.net/rss/response/719

Elasticsearch REST API HTTP 프토토콜과 JSON Data format 이용한다.

chapter에서 언급된 convention 별도로 기술되어 있지 않는 , REST API 통해 적용할 있다.


  • Multiple Indices
  • Common Options


받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://www.yongbi.net/rss/response/717