Example usage for org.apache.lucene.search FuzzyQuery getMaxEdits

List of usage examples for org.apache.lucene.search FuzzyQuery getMaxEdits

Introduction

In this page you can find the example usage for org.apache.lucene.search FuzzyQuery getMaxEdits.

Prototype

public int getMaxEdits() 

Source Link

Usage

From source file:com.github.rnewson.couchdb.lucene.QueryPlan.java

License:Apache License

private static void planFuzzyQuery(final StringBuilder builder, final FuzzyQuery query) {
    builder.append(query.getTerm());/* www .  ja v a 2  s  . c  o m*/
    builder.append(",prefixLength=");
    builder.append(query.getPrefixLength());
    builder.append(",maxEdits=");
    builder.append(query.getMaxEdits());
}

From source file:com.stratio.cassandra.index.query.FuzzyConditionTest.java

License:Apache License

@Test
public void testFuzzyQuery() {

    Map<String, ColumnMapper<?>> map = new HashMap<>();
    map.put("name", new ColumnMapperBoolean());
    Schema mappers = new Schema(EnglishAnalyzer.class.getName(), map);

    FuzzyCondition fuzzyCondition = new FuzzyCondition(0.5f, "name", "tr", 1, 2, 49, true);
    Query query = fuzzyCondition.query(mappers);

    Assert.assertNotNull(query);//from   w  w  w  . jav  a2s  . c  o m
    Assert.assertEquals(org.apache.lucene.search.FuzzyQuery.class, query.getClass());
    org.apache.lucene.search.FuzzyQuery luceneQuery = (org.apache.lucene.search.FuzzyQuery) query;
    Assert.assertEquals("name", luceneQuery.getField());
    Assert.assertEquals("tr", luceneQuery.getTerm().text());
    Assert.assertEquals(1, luceneQuery.getMaxEdits());
    Assert.assertEquals(2, luceneQuery.getPrefixLength());
    Assert.assertEquals(0.5f, query.getBoost(), 0);
}

From source file:com.stratio.cassandra.lucene.search.condition.FuzzyConditionTest.java

License:Apache License

@Test
public void testQuery() {

    Schema schema = mock(Schema.class);
    when(schema.getAnalyzer()).thenReturn(PreBuiltAnalyzers.STANDARD.get());
    when(schema.getMapper("name")).thenReturn(new StringMapper("name", null, null, null));

    FuzzyCondition condition = new FuzzyCondition(0.5f, "name", "tr", 1, 2, 49, true);
    Query query = condition.query(schema);

    assertNotNull(query);/*  ww w .  jav  a 2s  . c  om*/
    assertEquals(FuzzyQuery.class, query.getClass());
    FuzzyQuery luceneQuery = (FuzzyQuery) query;
    assertEquals("name", luceneQuery.getField());
    assertEquals("tr", luceneQuery.getTerm().text());
    assertEquals(1, luceneQuery.getMaxEdits());
    assertEquals(2, luceneQuery.getPrefixLength());
    assertEquals(0.5f, query.getBoost(), 0);
}

From source file:org.codelibs.fess.helper.QueryHelper.java

License:Apache License

protected QueryBuilder convertFuzzyQuery(final QueryContext context, final FuzzyQuery fuzzyQuery,
        final float boost) {
    final Term term = fuzzyQuery.getTerm();
    final String field = getSearchField(context, term.field());
    // TODO fuzzy value
    if (Constants.DEFAULT_FIELD.equals(field)) {
        context.addFieldLog(field, term.text());
        return buildDefaultQueryBuilder((f, b) -> QueryBuilders.fuzzyQuery(f, term.text())
                .fuzziness(Fuzziness.fromEdits(fuzzyQuery.getMaxEdits())).boost(b * boost));
    } else if (isSearchField(field)) {
        context.addFieldLog(field, term.text());
        return QueryBuilders.fuzzyQuery(field, term.text()).boost(boost)
                .fuzziness(Fuzziness.fromEdits(fuzzyQuery.getMaxEdits()));
    } else {//from w  w w  . ja v  a2 s  . co  m
        final String origQuery = fuzzyQuery.toString();
        context.addFieldLog(Constants.DEFAULT_FIELD, origQuery);
        context.addHighlightedQuery(origQuery);
        return buildDefaultQueryBuilder((f, b) -> QueryBuilders.fuzzyQuery(f, origQuery)
                .fuzziness(Fuzziness.fromEdits(fuzzyQuery.getMaxEdits())).boost(b * boost));
    }
}

From source file:org.easynet.resource.queryparser.QueryParserTestBase.java

License:Apache License

public void testWildcard() throws Exception {
    assertQueryEquals("term*", null, "term*");
    assertQueryEquals("term*^2", null, "term*^2.0");
    assertQueryEquals("term~", null, "term~2");
    assertQueryEquals("term~1", null, "term~1");
    assertQueryEquals("term~0.7", null, "term~1");
    assertQueryEquals("term~^3", null, "term~2^3.0");
    assertQueryEquals("term^3~", null, "term~2^3.0");
    assertQueryEquals("term*germ", null, "term*germ");
    assertQueryEquals("term*germ^3", null, "term*germ^3.0");

    assertTrue(getQuery("term*") instanceof PrefixQuery);
    assertTrue(getQuery("term*^2") instanceof PrefixQuery);
    assertTrue(getQuery("term~") instanceof FuzzyQuery);
    assertTrue(getQuery("term~0.7") instanceof FuzzyQuery);
    FuzzyQuery fq = (FuzzyQuery) getQuery("term~0.7");
    assertEquals(1, fq.getMaxEdits());
    assertEquals(FuzzyQuery.defaultPrefixLength, fq.getPrefixLength());
    fq = (FuzzyQuery) getQuery("term~");
    assertEquals(2, fq.getMaxEdits());/*  w  ww.  ja  v a2s .c o m*/
    assertEquals(FuzzyQuery.defaultPrefixLength, fq.getPrefixLength());

    assertParseException("term~1.1"); // value > 1, throws exception

    assertTrue(getQuery("term*germ") instanceof WildcardQuery);

    /*
     * Tests to see that wild card terms are (or are not) properly
     * lower-cased with propery parser configuration
     */
    // First prefix queries:
    // by default, convert to lowercase:
    assertWildcardQueryEquals("Term*", true, "term*");
    // explicitly set lowercase:
    assertWildcardQueryEquals("term*", true, "term*");
    assertWildcardQueryEquals("Term*", true, "term*");
    assertWildcardQueryEquals("TERM*", true, "term*");
    // explicitly disable lowercase conversion:
    assertWildcardQueryEquals("term*", false, "term*");
    assertWildcardQueryEquals("Term*", false, "Term*");
    assertWildcardQueryEquals("TERM*", false, "TERM*");
    // Then 'full' wildcard queries:
    // by default, convert to lowercase:
    assertWildcardQueryEquals("Te?m", "te?m");
    // explicitly set lowercase:
    assertWildcardQueryEquals("te?m", true, "te?m");
    assertWildcardQueryEquals("Te?m", true, "te?m");
    assertWildcardQueryEquals("TE?M", true, "te?m");
    assertWildcardQueryEquals("Te?m*gerM", true, "te?m*germ");
    // explicitly disable lowercase conversion:
    assertWildcardQueryEquals("te?m", false, "te?m");
    assertWildcardQueryEquals("Te?m", false, "Te?m");
    assertWildcardQueryEquals("TE?M", false, "TE?M");
    assertWildcardQueryEquals("Te?m*gerM", false, "Te?m*gerM");
    // Fuzzy queries:
    assertWildcardQueryEquals("Term~", "term~2");
    assertWildcardQueryEquals("Term~", true, "term~2");
    assertWildcardQueryEquals("Term~", false, "Term~2");
    // Range queries:
    assertWildcardQueryEquals("[A TO C]", "[a TO c]");
    assertWildcardQueryEquals("[A TO C]", true, "[a TO c]");
    assertWildcardQueryEquals("[A TO C]", false, "[A TO C]");
    // Test suffix queries: first disallow
    try {
        assertWildcardQueryEquals("*Term", true, "*term");
    } catch (Exception pe) {
        // expected exception
        if (!isQueryParserException(pe)) {
            fail();
        }
    }
    try {
        assertWildcardQueryEquals("?Term", true, "?term");
        fail();
    } catch (Exception pe) {
        // expected exception
        if (!isQueryParserException(pe)) {
            fail();
        }
    }
    // Test suffix queries: then allow
    assertWildcardQueryEquals("*Term", true, "*term", true);
    assertWildcardQueryEquals("?Term", true, "?term", true);
}

From source file:org.easynet.resource.queryparser.QueryParserTestBase.java

License:Apache License

public void testDistanceAsEditsParsing() throws Exception {
    FuzzyQuery q = (FuzzyQuery) getQuery("foobar~2", new MockAnalyzer(random()));
    assertEquals(2, q.getMaxEdits());
}

From source file:org.elasticsearch.action.debugquery.QueryToMapTransformer.java

License:Apache License

@Override
public Map visit(FuzzyQuery query) throws Exception {
    final Map map = newQuery(query);
    final Term term = query.getTerm();
    final String field = getTermField(term);
    final String termStr = term.bytes().utf8ToString();
    final String rewriteMethod = query.getRewriteMethod().getClass().getSimpleName();
    map.put(field, termStr);/*from  w ww .jav  a 2s .c  o  m*/
    map.put("max_edits", query.getMaxEdits());
    map.put("prefix_length", query.getPrefixLength());
    map.put("transpositions", query.getTranspositions());
    map.put("rewrite_method", rewriteMethod);
    return map;
}

From source file:org.elasticsearch.index.query.FuzzyQueryBuilderTests.java

License:Apache License

public void testToQueryWithStringField() throws IOException {
    assumeTrue("test runs only when at least a type is registered", getCurrentTypes().length > 0);
    String query = "{\n" + "    \"fuzzy\":{\n" + "        \"" + STRING_FIELD_NAME + "\":{\n"
            + "            \"value\":\"sh\",\n" + "            \"fuzziness\": \"AUTO\",\n"
            + "            \"prefix_length\":1,\n" + "            \"boost\":2.0\n" + "        }\n" + "    }\n"
            + "}";
    Query parsedQuery = parseQuery(query).toQuery(createShardContext());
    assertThat(parsedQuery, instanceOf(BoostQuery.class));
    BoostQuery boostQuery = (BoostQuery) parsedQuery;
    assertThat(boostQuery.getBoost(), equalTo(2.0f));
    assertThat(boostQuery.getQuery(), instanceOf(FuzzyQuery.class));
    FuzzyQuery fuzzyQuery = (FuzzyQuery) boostQuery.getQuery();
    assertThat(fuzzyQuery.getTerm(), equalTo(new Term(STRING_FIELD_NAME, "sh")));
    assertThat(fuzzyQuery.getMaxEdits(), equalTo(Fuzziness.AUTO.asDistance("sh")));
    assertThat(fuzzyQuery.getPrefixLength(), equalTo(1));
}

From source file:org.elasticsearch.index.query.SimpleIndexQueryParserTests.java

License:Apache License

@Test
public void testFuzzyQueryWithFieldsBuilder() throws IOException {
    IndexQueryParserService queryParser = queryParser();
    Query parsedQuery = queryParser.parse(fuzzyQuery("name.first", "sh")
            .fuzziness(Fuzziness.fromSimilarity(0.1f)).prefixLength(1).boost(2.0f).buildAsBytes()).query();
    assertThat(parsedQuery, instanceOf(FuzzyQuery.class));
    FuzzyQuery fuzzyQuery = (FuzzyQuery) parsedQuery;
    assertThat(fuzzyQuery.getTerm(), equalTo(new Term("name.first", "sh")));
    assertThat(fuzzyQuery.getMaxEdits(), equalTo(FuzzyQuery.floatToEdits(0.1f, "sh".length())));
    assertThat(fuzzyQuery.getPrefixLength(), equalTo(1));
    assertThat(fuzzyQuery.getBoost(), equalTo(2.0f));
}

From source file:org.elasticsearch.index.query.SimpleIndexQueryParserTests.java

License:Apache License

@Test
public void testFuzzyQueryWithFields() throws IOException {
    IndexQueryParserService queryParser = queryParser();
    String query = copyToStringFromClasspath("/org/elasticsearch/index/query/fuzzy-with-fields.json");
    Query parsedQuery = queryParser.parse(query).query();
    assertThat(parsedQuery, instanceOf(FuzzyQuery.class));
    FuzzyQuery fuzzyQuery = (FuzzyQuery) parsedQuery;
    assertThat(fuzzyQuery.getTerm(), equalTo(new Term("name.first", "sh")));
    assertThat(fuzzyQuery.getMaxEdits(), equalTo(FuzzyQuery.floatToEdits(0.1f, "sh".length())));
    assertThat(fuzzyQuery.getPrefixLength(), equalTo(1));
    assertThat(fuzzyQuery.getBoost(), equalTo(2.0f));
}