Package org.leskes.test.elasticfacets.facets

Source Code of org.leskes.test.elasticfacets.facets.HashedStringsFacetTokenizerTest

package org.leskes.test.elasticfacets.facets;

import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.action.search.SearchType;
import org.elasticsearch.common.settings.ImmutableSettings.Builder;
import org.elasticsearch.common.xcontent.XContentFactory;
import org.elasticsearch.search.facet.terms.TermsFacet;
import org.testng.annotations.Test;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.anyOf;
import static org.hamcrest.Matchers.equalTo;

public class HashedStringsFacetTokenizerTest extends AbstractFacetTest {

  @Override
  protected void loadData() throws Exception {
   
   client.admin().indices().preparePutMapping("test").setType("type1").setSource("{\"type1\":{"+
    "  \"properties\" : {          "+
    "       \"tag\" : {\"type\" : \"string\", \"analyzer\" : \"hsf_analyzer\"} "+
    "    } "+
    "}}"
    ).execute().actionGet();

    client.prepareIndex("test", "type1")
        .setSource("{ \"tag\" : \"1s2s3\"}").execute().actionGet();
    client.admin().indices().prepareFlush().setRefresh(true).execute()
        .actionGet();

    client.prepareIndex("test", "type1")
        .setSource("{ \"tag\" : \"2s4\"}").execute().actionGet();

    client.admin().indices().prepareRefresh().execute().actionGet();
  }
 
  @Override
  protected void configureNodeSettings(Builder settingsBuilder) {
    super.configureNodeSettings(settingsBuilder);
    settingsBuilder.put("index.analysis.analyzer.hsf_analyzer.type", "pattern");
    settingsBuilder.put("index.analysis.analyzer.hsf_analyzer.pattern", "s");
  }
 
  @Test
  public void SimpleHashStringFacet() throws Exception {

    for (int i = 0; i < numberOfRuns(); i++) {
      SearchResponse searchResponse = client
          .prepareSearch()
          .setSearchType(SearchType.COUNT)
          .setFacets(
              XContentFactory.jsonBuilder().startObject()
                  .startObject("facet1")
                  .startObject("hashed_terms")
                  .field("field", "tag").endObject()
                  .endObject().endObject().bytes()).execute()
          .actionGet();

      assertThat(searchResponse.hits().totalHits(), equalTo(2l));
      assertThat(searchResponse.hits().hits().length, equalTo(0));
      TermsFacet facet = searchResponse.facets().facet("facet1");
     
      logFacet(facet);
     
      assertThat(facet.entries().size(), equalTo(4));
      assertThat(facet.entries().get(0).term(),equalTo("2"));
      assertThat(facet.entries().get(0).count(), equalTo(2));
     
      assertThat(facet.entries().get(1).term(),
          anyOf(equalTo("1"), equalTo("3"),equalTo("4")));
      assertThat(facet.entries().get(1).count(), equalTo(1));
     
      assertThat(facet.entries().get(2).term(),
          anyOf(equalTo("1"), equalTo("3"),equalTo("4")));
      assertThat(facet.entries().get(2).count(), equalTo(1));
     
      assertThat(facet.entries().get(3).term(),
          anyOf(equalTo("1"), equalTo("3"),equalTo("4")));
      assertThat(facet.entries().get(3).count(), equalTo(1));
    }
  }

}
TOP

Related Classes of org.leskes.test.elasticfacets.facets.HashedStringsFacetTokenizerTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.