Search in sources :

Example 21 with Search

use of io.searchbox.core.Search in project dq-easy-cloud by dq-open-cloud.

the class TransportClient method page.

/**
 * 分页
 *
 * @throws IOException
 */
@Test
public void page() throws IOException {
    int pageNumber = 1;
    int pageSize = 10;
    SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
    searchSourceBuilder.query(QueryBuilders.queryStringQuery("JAVA"));
    // 设置起始页
    searchSourceBuilder.from((pageNumber - 1) * pageSize);
    // 设置页大小
    searchSourceBuilder.size(pageSize);
    Search search = // 索引名称
    new Search.Builder(searchSourceBuilder.toString()).addIndex(indexName).build();
    SearchResult result = jestClient.execute(search);
    // 自动解析
    JsonObject jsonObject = result.getJsonObject();
    JsonObject hitsobject = jsonObject.getAsJsonObject("hits");
    long took = jsonObject.get("took").getAsLong();
    long total = hitsobject.get("total").getAsLong();
    System.out.println("took:" + took + "  " + "total:" + total);
}
Also used : Search(io.searchbox.core.Search) GsonBuilder(com.google.gson.GsonBuilder) HighlightBuilder(org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder) SearchSourceBuilder(org.elasticsearch.search.builder.SearchSourceBuilder) QueryBuilder(org.elasticsearch.index.query.QueryBuilder) JsonObject(com.google.gson.JsonObject) SearchResult(io.searchbox.core.SearchResult) SearchSourceBuilder(org.elasticsearch.search.builder.SearchSourceBuilder) Test(org.junit.Test)

Example 22 with Search

use of io.searchbox.core.Search in project dq-easy-cloud by dq-open-cloud.

the class TransportClient method wildcardQuery.

/**
 * 通配符和正则表达式查询
 *
 * @throws Exception
 */
@Test
public void wildcardQuery() throws Exception {
    SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
    // 通配符和正则表达式查询
    QueryBuilder queryBuilder = QueryBuilders.wildcardQuery("title", "*:*");
    searchSourceBuilder.query(queryBuilder);
    searchSourceBuilder.size(10);
    searchSourceBuilder.from(0);
    String query = searchSourceBuilder.toString();
    System.out.println(query);
    Search search = new Search.Builder(query).addIndex(indexName).addType(typeName).build();
    SearchResult result = jestClient.execute(search);
    List<Hit<Object, Void>> hits = result.getHits(Object.class);
    System.out.println("Size:" + hits.size());
    for (Hit<Object, Void> hit : hits) {
        Object news = hit.source;
        System.out.println(news.toString());
    }
}
Also used : Hit(io.searchbox.core.SearchResult.Hit) Search(io.searchbox.core.Search) SearchResult(io.searchbox.core.SearchResult) JsonObject(com.google.gson.JsonObject) QueryBuilder(org.elasticsearch.index.query.QueryBuilder) SearchSourceBuilder(org.elasticsearch.search.builder.SearchSourceBuilder) Test(org.junit.Test)

Example 23 with Search

use of io.searchbox.core.Search in project opennms by OpenNMS.

the class ClientRecoveryTest method test.

@Test
public void test() {
    LOG.debug("***************** start of test ClientRecoveryTest");
    try {
        IndexNameFunction indexNameFunction = new IndexNameFunction();
        String rootIndexName = EventToIndex.INDEX_NAMES.get(EventToIndex.Indices.ALARMS);
        String indexName = indexNameFunction.apply(rootIndexName, new Date());
        // Get Jest client
        HttpClientConfig clientConfig = new HttpClientConfig.Builder("http://localhost:9200").multiThreaded(true).build();
        JestClientFactory factory = new JestClientFactory();
        factory.setHttpClientConfig(clientConfig);
        JestClient jestClient = factory.getObject();
        try {
            String query = "{\n" + "\n       \"query\": {" + "\n         \"match\": {" + "\n         \"alarmid\": \"1359\"" + "\n          }" + "\n        }" + "\n     }";
            Search search = new Search.Builder(query).addIndex(indexName).build();
            SearchResult sresult = jestClient.execute(search);
            LOG.debug("received search result: " + sresult.getJsonString() + "\n   response code:" + sresult.getResponseCode() + "\n   error message: " + sresult.getErrorMessage());
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            // shutdown client
            jestClient.shutdownClient();
        }
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    LOG.debug("***************** end of test ClientRecoveryTest");
}
Also used : IndexNameFunction(org.opennms.plugins.elasticsearch.rest.IndexNameFunction) HttpClientConfig(io.searchbox.client.config.HttpClientConfig) Search(io.searchbox.core.Search) SearchResult(io.searchbox.core.SearchResult) JestClient(io.searchbox.client.JestClient) JestClientFactory(io.searchbox.client.JestClientFactory) Date(java.util.Date) Test(org.junit.Test)

Example 24 with Search

use of io.searchbox.core.Search in project opennms by OpenNMS.

the class RawEventToIndexTest method jestClientRawEventToESTest.

/**
 * simple test to create a raw event in the raw event index and test that the event is added
 */
@Test
public void jestClientRawEventToESTest() {
    LOG.debug("***************** start of test jestClientRawEventToESTestt");
    EventToIndex eventToIndex = new EventToIndex();
    JestClient jestClient = null;
    try {
        // Get Jest client
        String esusername = "";
        String espassword = "";
        String elasticsearchUrl = "http://localhost:9200";
        RestClientFactory restClientFactory = new RestClientFactory(elasticsearchUrl, esusername, espassword);
        IndexNameFunction indexNameFunction = new IndexNameFunction("yyyy.MM");
        NodeCache nodeCache = new MockNodeCache();
        eventToIndex.setRestClientFactory(restClientFactory);
        eventToIndex.setNodeCache(nodeCache);
        eventToIndex.setIndexNameFunction(indexNameFunction);
        eventToIndex.setLogEventDescription(true);
        eventToIndex.setArchiveRawEvents(true);
        eventToIndex.setArchiveAlarms(true);
        eventToIndex.setArchiveAlarmChangeEvents(true);
        eventToIndex.setArchiveOldAlarmValues(true);
        eventToIndex.setArchiveNewAlarmValues(true);
        EventBuilder eb = new EventBuilder(NODE_LOST_SERVICE_EVENT, EVENT_SOURCE_NAME);
        // raw json="{"alarmid":806,"eventuei":"uei.opennms.org/nodes/nodeLostService","nodeid":36,"ipaddr":"142.34.5.19","serviceid":2,"reductionkey":"uei.opennms.org/nodes/nodeLostService::36:142.34.5.19:HTTP","alarmtype":1,"counter":1,"severity":5,"lasteventid":7003,"firsteventtime":"2016-07-27 22:20:52.282+01","lasteventtime":"2016-07-27 22:20:52.282+01","firstautomationtime":null,"lastautomationtime":null,"description":"<p>A HTTP outage was identified on interface\n      142.34.5.19.</p> <p>A new Outage record has been\n      created and service level availability calculations will be\n      impacted until this outage is resolved.</p>","logmsg":"HTTP outage identified on interface 142.34.5.19 with reason code: Unknown.","operinstruct":null,"tticketid":null,"tticketstate":null,"mouseovertext":null,"suppresseduntil":"2016-07-27 22:20:52.282+01","suppresseduser":null,"suppressedtime":"2016-07-27 22:20:52.282+01","alarmackuser":null,"alarmacktime":null,"managedobjectinstance":null,"managedobjecttype":null,"applicationdn":null,"ossprimarykey":null,"x733alarmtype":null,"x733probablecause":0,"qosalarmstate":null,"clearkey":null,"ifindex":null,"eventparms":"eventReason=Unknown(string,text)","stickymemo":null,"systemid":"00000000-0000-0000-0000-000000000000"}";
        eb.setUei("uei.opennms.org/nodes/nodeLostService");
        eb.setNodeid(36);
        InetAddress ipAddress = InetAddressUtils.getInetAddress("142.34.5.19");
        eb.setInterface(ipAddress);
        eb.setSource("mock event test");
        eb.setHost("localhost");
        eb.setLogDest("logndisplay");
        eb.setLogMessage("this is a test log message");
        eb.setDescription("this is a test description");
        eb.setTime(new Date());
        eb.setUuid("00000000-0000-0000-0000-000000000000");
        Event event = eb.getEvent();
        event.setDbid(101);
        LOG.debug("ecreated node lost service event:" + event.toString());
        // forward event to Elasticsearch
        eventToIndex.forwardEvents(Collections.singletonList(event));
        // waiting 5 seconds for index
        try {
            TimeUnit.SECONDS.sleep(5);
        } catch (InterruptedException e) {
        }
        // send query to check that event has been created
        jestClient = restClientFactory.getJestClient();
        // search for resulting event
        String eventquery = "{\n" + "\n       \"query\": {" + "\n         \"match\": {" + "\n         \"id\": \"101\"" + "\n          }" + "\n        }" + "\n     }";
        LOG.debug("event check search query: " + eventquery);
        Search eventsearch = new Search.Builder(eventquery).addIndex("opennms-*").build();
        SearchResult eventsresult = jestClient.execute(eventsearch);
        LOG.debug("received search eventsresult: " + eventsresult.getJsonString() + "\n   response code:" + eventsresult.getResponseCode() + "\n   error message: " + eventsresult.getErrorMessage());
        assertEquals(200, eventsresult.getResponseCode());
        JSONParser parser = new JSONParser();
        Object obj2 = parser.parse(eventsresult.getJsonString());
        JSONObject eventsresultValues = (JSONObject) obj2;
        JSONObject eventhits = (JSONObject) eventsresultValues.get("hits");
        LOG.debug("search result event hits:total=" + eventhits.get("total"));
        assertEquals(Long.valueOf(1), eventhits.get("total"));
        JSONArray eventhitsvalues = (JSONArray) eventhits.get("hits");
        LOG.debug("   eventhitsvalues: " + eventhitsvalues.toJSONString());
        JSONObject hitObj = (JSONObject) eventhitsvalues.get(0);
        LOG.debug("   hitsObj: " + hitObj.toJSONString());
        String typeStr = hitObj.get("_type").toString();
        LOG.debug("search result index type=" + typeStr);
        assertEquals(EVENT_INDEX_TYPE, typeStr);
        JSONObject sourceObj = (JSONObject) hitObj.get("_source");
        LOG.debug("   sourceObj: " + sourceObj.toJSONString());
        String eventUeiStr = sourceObj.get("eventuei").toString();
        LOG.debug("search result event eventueistr=" + eventUeiStr);
        assertEquals(NODE_LOST_SERVICE_EVENT, eventUeiStr);
    } catch (Exception ex) {
        ex.printStackTrace();
        throw new RuntimeException(ex);
    } finally {
        // shutdown client
        if (jestClient != null)
            jestClient.shutdownClient();
        if (eventToIndex != null)
            eventToIndex.close();
    }
    LOG.debug("***************** end of test jestClientRawEventToESTest");
}
Also used : IndexNameFunction(org.opennms.plugins.elasticsearch.rest.IndexNameFunction) NodeCache(org.opennms.plugins.elasticsearch.rest.NodeCache) EventBuilder(org.opennms.netmgt.model.events.EventBuilder) JSONArray(org.json.simple.JSONArray) SearchResult(io.searchbox.core.SearchResult) JestClient(io.searchbox.client.JestClient) Date(java.util.Date) EventBuilder(org.opennms.netmgt.model.events.EventBuilder) JSONObject(org.json.simple.JSONObject) RestClientFactory(org.opennms.plugins.elasticsearch.rest.RestClientFactory) Search(io.searchbox.core.Search) Event(org.opennms.netmgt.xml.event.Event) JSONParser(org.json.simple.parser.JSONParser) JSONObject(org.json.simple.JSONObject) InetAddress(java.net.InetAddress) EventToIndex(org.opennms.plugins.elasticsearch.rest.EventToIndex) Test(org.junit.Test)

Example 25 with Search

use of io.searchbox.core.Search in project herd by FINRAOS.

the class JestClientHelperTest method testSearchExecuteWithException.

@Test
public void testSearchExecuteWithException() throws Exception {
    // Mock
    Search search = mock(Search.class);
    JestClient jestClient = mock(JestClient.class);
    when(jestClientFactory.getJestClient()).thenReturn(jestClient);
    when(jestClient.execute(search)).thenThrow(new IOException());
    try {
        // Test
        jestClientHelper.searchExecute(search);
    } catch (RuntimeException runtimeException) {
        // Validate
        assertThat(runtimeException, is(instanceOf(RuntimeException.class)));
    }
    // Verify
    verify(jestClientFactory).getJestClient();
    verify(jestClient).execute(search);
    verifyNoMoreInteractions(createdMocks.toArray());
}
Also used : Search(io.searchbox.core.Search) JestClient(io.searchbox.client.JestClient) IOException(java.io.IOException) Test(org.junit.Test)

Aggregations

Search (io.searchbox.core.Search)45 SearchResult (io.searchbox.core.SearchResult)24 SearchSourceBuilder (org.elasticsearch.search.builder.SearchSourceBuilder)23 Test (org.junit.Test)15 Hit (io.searchbox.core.SearchResult.Hit)12 JestClient (io.searchbox.client.JestClient)11 SearchSourceBuilder (org.graylog.shaded.elasticsearch6.org.elasticsearch.search.builder.SearchSourceBuilder)10 QueryBuilder (org.elasticsearch.index.query.QueryBuilder)9 JsonObject (com.google.gson.JsonObject)8 Map (java.util.Map)8 IOException (java.io.IOException)7 List (java.util.List)7 Set (java.util.Set)6 Collectors (java.util.stream.Collectors)6 Inject (javax.inject.Inject)6 IndexMapping (org.graylog2.indexer.IndexMapping)6 Optional (java.util.Optional)5 BoolQueryBuilder (org.graylog.shaded.elasticsearch6.org.elasticsearch.index.query.BoolQueryBuilder)5 QueryBuilder (org.graylog.shaded.elasticsearch6.org.elasticsearch.index.query.QueryBuilder)5 QueryBuilders (org.graylog.shaded.elasticsearch6.org.elasticsearch.index.query.QueryBuilders)5