0

私はを使用しています。春データElasticsearchELasticseachでデータを解析します。私はすでにインデックスされた要素(elastalert)の魔女にalert_sentプロパティが含まれています。だから私がしたいのは、管理者に送信されたすべてのアラートを返すことです。私はリポジトリList<Alert> findByAlert_sentTrue()でメソッドを定義しようとしましたが、アンダースコアが問題です(ドキュメントhttp://docs.spring.io/spring-data/elasticsearch/docs/current/reference/html/#repositories.query-methods.query-property-expressionsに記載されています)。ここで春データelasticsearchを通じて特定のフィールドを検索する

」インデックス付き要素のマッピング:カールで

@Document(indexName = "elastalert_status", type = "elastalert") 
    public class Rule { 
     @Id 
     private String id; 
     private String name; 
     private String es_host; 
     private String es_port; 
     private String index; 
     private String type; 
     private String query; 
     private String TimeStamp; 
     private String email; 
     private int runEvery; 
     private String alertsent; 
     private String alertTime; 
     private String matchBody; 
    ... 
Getters and Setters 
... 

はそれが

curl -XPOST 'localhost:9200/elastalert_status/elastalert/_search?pretty' -d ' 
{ 
    "query": { "match": { "alert_sent": true } } 
}' 

だから、次のようになります。私はそのインデックス付きの要素を使用することを企業に作成した

{ 
    "elastalert_status" : { 
    "mappings" : { 
     "elastalert" : { 
     "properties" : { 
      "@timestamp" : { 
      "type" : "date", 
      "format" : "dateOptionalTime" 
      }, 
      "aggregate_id" : { 
      "type" : "string", 
      "index" : "not_analyzed" 
      }, 
      "alert_exception" : { 
      "type" : "string" 
      }, 
      "alert_info" : { 
      "properties" : { 
       "recipients" : { 
       "type" : "string" 
       }, 
       "type" : { 
       "type" : "string" 
       } 
      } 
      }, 
      "alert_sent" : { 
      "type" : "boolean" 
      }, 
      "alert_time" : { 
      "type" : "date", 
      "format" : "dateOptionalTime" 
      }, 
      "match_body" : { 
      "type" : "object", 
      "enabled" : false 
      }, 
      "rule_name" : { 
      "type" : "string", 
      "index" : "not_analyzed" 
      } 
     } 
     } 
    } 
    } 
} 

Spring Data Elasticsearchを使用して送信されたアラートをすべて取得するにはどうすればよいですか?おかげさまで

答えて

0

私はこのための解決策を見つけ、私はElasticsearchRepositoryを拡張リポジトリを作成することによって開始し、私のpersonnalizedクエリ

public interface RuleRepository extends ElasticsearchRepository<Rule,String> { 

    @Query("{\"bool\": {\"must\": {\"match\": {\"alert_sent\": true}}}}") 
    List<Rule> findSentAlert(); 
} 

を追加し、単にコードのこの部分を追加し、それらのアラートを視覚化する:

List<Rule> rules = repository.findSentAlert(); 
    System.out.println("Rule list: " + rules); 

私はそれが誰かを助けることを望む:)

関連する問題