Elasticsearch分割java api生成restful jsonコード


詳細
プロジェクトではElasticSearch 1.4.2が使用されていますが、複数のプロジェクトの生産環境で使用されているjdkバージョンは一致せず、ほとんどが1.6です.
折衷スキームではrestful apiを使用しますが、query jsonは書くのが面倒でjava apiでコードを書こうとし、最終的にrestful jsonを生成します.
Jestのようないくつかのオープンソースプロジェクトを見て、RDが自分でjsonを書くか、ESで提供されているクラスSearchSourceBuilderを書く必要があります.
卵が痛いのは、ElasticSearchが機能を分解していないのか、jdkバージョンにまたがらないのかという問題です.
仕方なくESのコードからこのコードを分割し、jdk 1.6コンパイル実行をサポートします.
コードは分割されたが,微細化された整理はなく,不要な検索ロジックが存在する.
後でHttpClientを加えるとjava apiがrestfulインタフェースで呼び出されたと書くことができます.
Git:https://github.com/mazhen2010/rts-es-rest4j

public class SearchSourceBuilderTest {

    @Test
    public void testJson() {
        QueryBuilder query = QueryBuilders.matchQuery("firmName", "  ");
        FilterBuilder stationFilter = FilterBuilders.termFilter("stationId", 5);
        FilterBuilder staffFilter = FilterBuilders.termFilter("staffId", 936);
        query = QueryBuilders.filteredQuery(query, FilterBuilders.andFilter(stationFilter).add(staffFilter));
        SortBuilder dealSorter = SortBuilders.fieldSort("dealCount").order(SortOrder.ASC);
        SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
        String json = searchSourceBuilder.query(query).toString();
        System.out.println(json);
    }
}
  • rts_es_rest4j-1.0.0.0-SNAPSHOT.jar (680.3 KB)
  • ダウンロード回数:51