μλΌμ€ν±μμΉ μΈλ±μ€
νμ¬ μ‘°μ§μ μ£Όμ μ루μ μ μλΌμ€ν±μμΉ 1.6μ κΈ°λ°μΌλ‘ λμνλ©° μ¬λ¬κ°μ λ Έλλ‘ κ΅¬μ±λλ μλΌμ€ν±μμΉ ν΄λ¬μ€ν°λ‘ μ΄μ©νκ³ μμ΅λλ€. κ·Έλ¬λ, μ κ° λ΄λΉνμ¬ κ°λ°μ€μΈ μ κ· μμ€ν μ μκ³μ΄ λ°μ΄ν°λ₯Ό μ μ₯νκΈ° μν μκ³μ΄ λ°μ΄ν°λ² μ΄μ€λ₯Ό μ¬μ©μ€μ΄λ―λ‘ μλΌμ€ν±μμΉμ μκ³μ΄ λ°μ΄ν°μ κ°μ λκ·λͺ¨ λ°μ΄ν° λ° μμ νκ² μ΄μ©λμ΄μΌνλ κ°μ©μ±μ΄ μꡬλμ§ μμΌλ―λ‘ λ¨μΌ λ Έλ ν΄λ¬μ€ν°λ‘ μ¬μ©νκ³ μμ΅λλ€.
μ±κΈ λ Έλ ν΄λ¬μ€ν°λ‘ μ΄μ©λλ μλΌμ€ν±μμΉμλ μμ€ν μμ λ°μνλ νΉμ μ 보μ λν λ‘κ·Έ λ°μ΄ν°λ₯Ό κ°λ³ λ¨μΌ μΈλ±μ€μ μ μ₯νκ³ μμΌλ©° μλΌμ€ν±μμΉλ‘λΆν° μ ν΄μ§ μΈλ±μ€μ μ μ₯λλ λνλ¨ΌνΈλ₯Ό μ‘°ννκΈ° λλ¬Έμ μλΌμ€ν±μμΉκ° μ§μνλ μ¬λ¬κ°μ§ 쿼리λ₯Ό νμ©ν κ²½νμ λ§μ§ μμ κ²μ μμ¬μ΄ λΆλΆμ΄κΈ΄ ν©λλ€.
μκ³μ΄ λ°μ΄ν°λ μλΌμ€ν±μμΉκ° μλ λ³λμ μκ³μ΄ λ°μ΄ν°λ² μ΄μ€μ μ μ₯νκ³ ν΅κ³ μ 보λ₯Ό 쿼리νκ³ μμ΅λλ€.
μΈλ±μ€ κ΄λ ¨ νΈλ¬λΈμν
λκ·λͺ¨ λ Έλλ‘ κ΅¬μ±λ μλΌμ€ν±μμΉ ν΄λ¬μ€ν°λ₯Ό μ΄μ©νμ§ μλλΌλ μΈλ±μ€μ κ΄λ ¨λ μ¬λ¬κ°μ§ λ¬Έμ λ€μ κ°κ°ν κ²½νν΄λ³΄κΈ΄ νμ΅λλ€. μ€νλ € μλΌμ€ν±μμΉκ° κ³ κ°μ©μ±μΌλ‘ μ΄μλμ§ μμμ λ°μνλ λ¬Έμ λ‘ λ΄μΌν κ² κ°μ΅λλ€.
λμ 맀ν νλ μ ν
μ‘°μ§μ κΈ°μ‘΄ μ루μ μ΄ μλΌμ€ν±μμΉλ₯Ό μ£Όμ λ°μ΄ν°λ² μ΄μ€λ‘ νμ©νλλΌλ μ£Ό κ°λ°μλ€μ΄ νμ¬ κ°λ°μ€μΈ μμ€ν μ μ°Έμ¬ν κ²μ μλκ³ μ λ μ‘°μ§μ μ μ μΌ λ μ°Έμ¬νμΌλ―λ‘ μλΌμ€ν±μμΉμ λν΄ λλ΅μ μΈ κ°λ μ‘°μ°¨ λͺ¨λ₯΄λ μκΈ°μμ΅λλ€. μμ€ν μ μꡬ μ¬νκ³Ό μ€κ³κ° λͺ ννμ§ μμκΈ°μ μλΌμ€ν±μμΉμμ κΈ°λ³Έμ μΌλ‘ μ 곡νλ λμ νλ 맀νμ ν΅ν΄ κ°λ°μκ° λ³λλ‘ κ΄λ¦¬νμ§ μμλ λνλ¨ΌνΈμ λν κ° νλλ€μ μλμΌλ‘ 맀ννλ μνλ‘ μμ€ν μμ λ°μνλ μΌλΆ μ 보μ λ³νλ€μ λ‘κ·Έλ‘ μ μ₯νμμ΅λλ€.
limit of total fields 1000 has been exceeded
μ λ¬Έμ λ λμ νλ 맀νμΌλ‘ λ§λ€μ΄μ§λ μΈλ±μ€μ μ¬λ¬κ°μ§ νλκ° μ μ₯λμ΄μ§λ νμΈν μ μλ μ€λ₯μ λλ€. μλΌμ€ν±μμΉμ μ μ₯λλλ‘ν λ‘κ·Έ μ€μμ λ€μνκ² νλκ° λ³κ²½λ μ μλ λ©νλ°μ΄ν° μ€λΈμ νΈκ° ν¬ν¨λμκ³ μ μ λ€μν ν€ κ°μ΄ μΆκ°λλ©΄μ μλΌμ€ν±μμΉλ λμ 맀νμ μν΄ λ©νλ°μ΄ν° ν€μ λν νλ 맀νμ μΆκ°νμ¬ λ§€ν μ λ³΄κ° μ μ°¨ λμ΄λμ μ νλκΉμ§ λμ΄μκ² λλ μν©μ΄ λ°μν κ² μ λλ€.
μ΄ λ¬Έμ μ λν΄μλ μμμ μΌλ‘ μΈλ±μ€μ λν΄ νλ μ ν μλ₯Ό μ‘°μ νμ¬ μ‘°μΉν μ μμΌλ λ©νλ°μ΄ν° μ€λΈμ νΈκ° λ€μνκ² μΆκ°λλ©΄ λ€μ λ°μν μ μμΌλ―λ‘ κ·Όλ³Έμ μΈ ν΄κ²°μ± μ μλλλ€. κ·Έλμ ν΄λΉ νμμ΄ λ°κ²¬λλ μΈλ±μ€μ λν΄μλ λμ 맀νμ μν΄ μΆκ°λ 맀ν μ 보λ₯Ό νμΈνμ¬ κ³μν΄μ 맀ν μ λ³΄κ° λ§λ€μ΄μ§ μ μλ νλλ₯Ό λ¨μν μ μ₯λ§νλλ‘ λ§€ν μ 보λ₯Ό λΆμ¬νκ³ μ¬ μΈλ±μ€λ₯Ό μνν΄μΌλ§ νμ΅λλ€.
λνλ¨ΌνΈ μμ
λ¨μΌ λ Έλμ μλΌμ€ν±μμΉ ν΄λ¬μ€ν°μ΄λ―λ‘ λ¨μΌ μΈλ±μ€μ λ무 λ§μ λνλ¨ΌνΈκ° μ μ₯λλ©΄ μ±λ₯μ λ¬Έμ κ° λ μ μμ΅λλ€. μ¬μ§μ΄λ μλΌμ€ν±μμΉ 7λΆν° μΈλ±μ€μ λν νλΌμ΄λ¨Έλ¦¬ μ€λμ κΈ°λ³Έκ°μ΄ 1 μ΄μλ λΆλΆμΌλ‘ μΈνμ¬ μΈλ±μ€μ νλμ μ€λκ° λ무 λ§μ λνλ¨ΌνΈλ₯Ό μ μ₯νκ³ μλ κ΅¬μ‘°κ° λμ΄λ²λ Έμ΅λλ€.
νΉμ μΈλ±μ€μ μ μ₯λλ λνλ¨ΌνΈκ° λ무 λ§μμ‘κ³ μ¬μ§μ΄λ μ€λλ λνλ¨ΌνΈκ° λΆνμνκ² λ¨μμμκΈ°μ μΌμ κΈ°κ°μ΄ μ§λ λνλ¨ΌνΈλ μ§μ°λλ‘ _delete_by_queryλ₯Ό μ¬μ©ν΄μ μ€μΌμ€μ μν΄ μλΌμ€ν±μμΉ ν΄λ¬μ€ν°μ μ§μ°λλ‘ μμ²ν΄λμμ΅λλ€. κ·Έλ¬λ, Elasticsearchμ μμΈ λ³λͺ νμ© νμ λμμλ κ²μ²λΌ μλΌμ€ν±μμΉ ν΄λ¬μ€ν°μμλ λνλ¨ΌνΈλ₯Ό μ€μ λ‘ μμ νλ κ²μ μλ λΆλΆμΌλ‘ μΈνμ¬ μ€νλ € μλΌμ€ν±μμΉ ν΄λ¬μ€ν°μ μΈλ±μ€μ μ©λμ΄ μΌμμ μΌλ‘ λμ΄λκ² λλ λ¬Έμ λ₯Ό κ°μ Έκ°κ² λ©λλ€.
λμ€ν¬ λ³Όλ₯¨μ μ¦μ€ν μ μλ€κ³ ν΄λ μλ² μ©λμ λ―Όκ°ν μ λ°μ μμ΅λλ€.
μΌμλ³ μΈλ±μ€ μ‘°ν
λνλ¨ΌνΈ μμ κ° μ©μ΄νμ§ μμ λ¨μΌ μΈλ±μ€μ λ¬Έμ λ₯Ό ν΄μνκΈ° μν΄μ νΉμ λ‘κ·Έμ λν΄μλ μΌμλ³λ‘ μ μ₯λλλ‘ μ μ©ν΄μΌνμ΅λλ€. λ¨μΌ μΈλ±μ€λ‘ μ μ₯νλκ±Έ μΌμλ³λ‘ μ μ₯νλ κ²μ μΈλ±μ€ λͺ μ μ μ₯λλ μμ μ λ μ§ ν¬λ§·(yyyyMMdd)μ μΆκ°νλ©΄ λκΈ°μ μ΄λ €μμ μμμ΅λλ€. ν΄λΉ μμ μ λν΄ κ²ν νλ μ€ μΈλ±μ€μ λν μ‘°ν κΈ°λ₯μ μΌλΆ μ¬μ΄λ μ΄ννΈκ° λ°μν μ μμμ νμΈνμμ΅λλ€.
Search APIμ λν΄μλ μΈλ±μ€ ν¨ν΄μ λν΄μ μ‘°νν μ μλλ‘ μ§μν©λλ€λ§, νΉμ λνλ¨ΌνΈμ λν μμ΄λλ₯Ό κΈ°μ€μΌλ‘ Get APIλ₯Ό μ¬μ©νκΈ° μν΄μλ μΈλ±μ€ λͺ μ μμμΌλ§ ν©λλ€. μ¬μ§μ΄λ μ¬λ¬κ°μ μΈλ±μ€μ λν΄μ μ‘°νν μ μλ Mget APIλ μ‘°ννκ³ μ νλ μΈλ±μ€λ€μ μ΄λ¦μ λμ΄ν΄μΌνκΈ°μ μΈλ±μ€ ν¨ν΄μ λν΄ μΈλ±μ€ λͺ©λ‘μ μ‘°ννκ³ μ¬λ¬κ°μ μΈλ±μ€μ κ±Έμ³ λ³λ ¬ μ‘°νν μ μλλ‘ μλμ κ°μ΄ λ³κ²½ν΄μΌ νμ΅λλ€.
// NOTE: μΈλ±μ€ ν¨ν΄μ μν μ€μ μΈλ±μ€ λͺ©λ‘ μ‘°ν
GetIndexRequest getIndexRequest = new GetIndexRequest("oauth_log*");
GetIndexResponse getIndexResponse = highLevelClient.indices().get(getIndexRequest, RequestOptions.DEFAULT);
String[] indices = getIndexResponse.getIndices();
// NOTE: μ¬λ¬κ°μ μΈλ±μ€μ κ±Έμ³ λ³λ ¬ μ‘°ν
MultiGetRequest multiGetRequest = new MultiGetRequest();
for (String index : indices) {
multiGetRequest.add(index, "c70e49fa-d0f4-4278-a271-a46f688349f6");
}
MultiGetResponse multiGetResponse = highLevelClient.mget(multiGetRequest, RequestOptions.DEFAULT);
MultiGetItemResponse[] responses = multiGetResponse.getResponses();
for (MultiGetItemResponse response : responses) {
if (!response.isFailed() && response.getResponse().isExists()) {
String index = response.getIndex();
String id = response.getId();
log.info("{} in {}, {}", id, index, response.getResponse().getSource());
}
}
μΌμλ³ μΈλ±μ€μ μλ λνλ¨ΌνΈμ μμ΄λκ° μΆ©λνμ§ μλλ€λ κ²μ 보μ₯ν λλ₯Ό κΈ°μ€μΌλ‘ ν©λλ€.
μ΅κ·Ό μΈλ±μ€μ κ΄λ ¨λ μμ μ νκ³ μμ΄μ μ¬νκΉμ§ κ²½ννλ λ¬Έμ μ λν΄μ μμ±ν΄λ³΄μμ΅λλ€. μΈλ±μ€ κ΄λ¦¬μ κ΄λ ¨ν΄μ μ¬μ©μ€μ΄λ μλΌμ€ν±μμΉ λ²μ μ 7.3.2μμ 7.12.1λ‘ λ³κ²½νλ μμ μ μ§ννκ³ μμΌλ©° μ΄μ λλΆμ΄ μλΌμ€ν±μμΉμ ν¨κ» ν€λ°λλ₯Ό νμ©ν΄μ λ ν¨μ¨μ μΌλ‘ μΈλ±μ€λ₯Ό κ΄λ¦¬ν μ μλ λ°©μμ λν΄μ 곡λΆν΄λ³΄κ³ μμ΅λλ€.
κ°μ¬ν©λλ€.