List of usage examples for org.apache.lucene.search FuzzyQuery getMaxEdits
public int getMaxEdits()
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)); }