2017-03-07 2 views
0

데이터를 자체 색인의 특정 색인에 보관하려고합니다. 나는 이렇게하기 위해 어떤 elasticsearch 설정을 적용해야하는지 궁금합니다. 특히, 내 인덱스의 데이터를 다른 노드에 복제하지 않기를 바란다.탄성 검색 : 자체 색인의 범위 데이터

질문을 수정하십시오 : 자체 노드에 대한 색인에 데이터를 보관하는 방법이 있습니까 (모든 노드에 대해)?

노드 1 -> foobar_index ---> { "데이터": "asdf을"}

노드 2 -> foobar_index ---> { "데이터": "QWERTY"}

노드 3 - -> foobar_index ---> { "data": "zxcv"}

+0

그래서 한 노드에 저장된 문서를 다른 노드에 복제하지 않겠습니까? 그것이 맞다면, 그렇게 할 수 있지만 한 노드가 다운되면 데이터가 손실됩니다. – Val

+0

예 - 정확합니다. 우리는 오직 자신에게만 적합한 정보를 가진 노드를 가지고 있습니다. 또한 느린 네트워크 링크를 통해 연결된 노드간에 복제를 방지 할 수 있기를 원합니다. 나에게 어떤 설정 --- 내가 하루 종일 그것을 이해하려고 노력하고 있었던 것을 알린다. – user2926999

답변

1

단순히 색인을 복제하지 않으려는 경우, 즉 하나의 노드에만 샤드를 표시하려는 경우 복제본의 수를 0으로 설정할 수 있습니다. 하지만 노드 중 하나가 다운되거나 손상되면 데이터가 손실 될 수 있습니다.

curl -XPUT 'localhost:9200/foobar_index/_settings' -d ' 
{ 
    "index" : { 
     "number_of_replicas" : 0 
    } 
}' 
+0

작동하지 않았습니다 --- 설정을 변경하고 데이터를 추가하고 두 노드에 동일한 데이터가 나타납니다. – user2926999

+0

'curl -XGET localhost : 9200/_cat/shards'에서 얻은 응답으로 질문을 업데이트 할 수 있습니까? – Val

+0

아! 나는 당신이 의미하는 것을 보았다고 생각합니다. 이것이 내가 한 일입니다. 색인을 생성하고 그 설정을 적용했습니다. node1의 인덱스에 데이터를 만들고 node1에 es.search()를 수행하여 데이터가 있는지 확인했습니다. 또한 node2에 es.search()를 수행하여 데이터가 존재한다는 것을 알았지 만 데이터는 해당 노드에 존재하지 않습니다 _는 내가 생각하는 것입니다. 그 맞습니까? – user2926999