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

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

Introduction

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

Prototype

@Deprecated
public static int floatToEdits(float minimumSimilarity, int termLen) 

Source Link

Document

Helper function to convert from deprecated "minimumSimilarity" fractions to raw edit distances.

Usage

From source file:com.sindicetech.siren.qparser.keyword.BasicSyntaxTest.java

License:Open Source License

@Test
public void testFuzzyQuery2() throws Exception {
    final NodeFuzzyQuery q1 = new NodeFuzzyQuery(new Term(SirenTestCase.DEFAULT_TEST_FIELD, "michel"));
    q1.setDatatype("http://www.w3.org/2001/XMLSchema#string");
    this._assertSirenQuery(new LuceneProxyNodeQuery(q1), "michel~");

    final TwigQuery q2 = new TwigQuery(1);
    q2.addChild(q1, NodeBooleanClause.Occur.MUST);
    this._assertSirenQuery(new LuceneProxyNodeQuery(q2), "* : michel~");

    final int numEdits = FuzzyQuery.floatToEdits(0.8f, "michel".codePointCount(0, "michel".length()));
    final NodeFuzzyQuery q3 = new NodeFuzzyQuery(new Term(SirenTestCase.DEFAULT_TEST_FIELD, "michel"),
            numEdits);//  w  w  w.jav a  2 s .  c  om
    q3.setDatatype("http://www.w3.org/2001/XMLSchema#string");
    this._assertSirenQuery(new LuceneProxyNodeQuery(q3), "michel~0.8");

    // first tilde is escaped, not the second one
    final NodeFuzzyQuery q4 = new NodeFuzzyQuery(
            new Term(SirenTestCase.DEFAULT_TEST_FIELD, "http://sw.deri.org/~aida"));
    q4.setDatatype("http://www.w3.org/2001/XMLSchema#string");
    this._assertSirenQuery(new LuceneProxyNodeQuery(q4), "'http://sw.deri.org/~aida'~");
}

From source file:com.sindicetech.siren.qparser.keyword.builders.NodeFuzzyQueryNodeBuilder.java

License:Open Source License

public NodeQuery build(QueryNode queryNode) throws QueryNodeException {
    FuzzyQueryNode fuzzyNode = (FuzzyQueryNode) queryNode;
    String text = fuzzyNode.getTextAsString();

    int numEdits = FuzzyQuery.floatToEdits(fuzzyNode.getSimilarity(), text.codePointCount(0, text.length()));

    NodeFuzzyQuery fuzzyQuery = new NodeFuzzyQuery(
            new Term(fuzzyNode.getFieldAsString(), fuzzyNode.getTextAsString()), numEdits,
            fuzzyNode.getPrefixLength());
    // assign the datatype. We must always have a datatype assigned.
    fuzzyQuery.setDatatype((String) queryNode.getTag(DatatypeQueryNode.DATATYPE_TAGID));

    // if it is tagged as a span query
    if (fuzzyNode.getTag(QueryTypeProcessor.QUERYTYPE_TAG) == QueryTypeProcessor.SPAN_QUERYTYPE) {
        return new MultiTermSpanQuery<>(fuzzyQuery);
    } else {//from  w ww  .  j  av  a 2  s. c  om
        return fuzzyQuery;
    }
}

From source file:jp.scaleout.elasticsearch.plugins.queryparser.classic.MapperQueryParser.java

License:Apache License

@Override
protected Query newFuzzyQuery(Term term, float minimumSimilarity, int prefixLength) {
    String text = term.text();//from w ww  .j a v a2 s. c o  m
    int numEdits = FuzzyQuery.floatToEdits(minimumSimilarity, text.codePointCount(0, text.length()));
    FuzzyQuery query = new FuzzyQuery(term, numEdits, prefixLength, settings.fuzzyMaxExpansions(),
            FuzzyQuery.defaultTranspositions);
    QueryParsers.setRewriteMethod(query, settings.fuzzyRewriteMethod());
    return query;
}

From source file:jp.scaleout.elasticsearch.plugins.queryparser.classic.QueryParserBase.java

License:Apache License

/**
 * Builds a new FuzzyQuery instance/*from  w w  w.  j a va 2 s . c  om*/
 * @param term Term
 * @param minimumSimilarity minimum similarity
 * @param prefixLength prefix length
 * @return new FuzzyQuery Instance
 */
protected Query newFuzzyQuery(Term term, float minimumSimilarity, int prefixLength) {
    // FuzzyQuery doesn't yet allow constant score rewrite
    String text = term.text();
    int numEdits = FuzzyQuery.floatToEdits(minimumSimilarity, text.codePointCount(0, text.length()));
    return new FuzzyQuery(term, numEdits, prefixLength);
}

From source file:org.allenai.blacklab.queryParser.lucene.QueryParserBase.java

License:Apache License

/**
 * Builds a new FuzzyQuery instance//from   www .j  a va2 s  .  co  m
 * @param term Term
 * @param minimumSimilarity minimum similarity
 * @param prefixLength prefix length
 * @return new FuzzyQuery Instance
 */
protected TextPattern newFuzzyQuery(Term term, float minimumSimilarity, int prefixLength) {
    // FuzzyQuery doesn't yet allow constant score rewrite
    String text = term.text();
    int numEdits = FuzzyQuery.floatToEdits(minimumSimilarity, text.codePointCount(0, text.length()));
    return new TextPatternFuzzy(term.text(), numEdits, prefixLength); // BL was: FuzzyQuery
}

From source file:org.elasticsearch.common.unit.Fuzziness.java

License:Apache License

public int asDistance(String text) {
    if (fuzziness instanceof String) {
        if (this == AUTO) { //AUTO
            final int len = termLen(text);
            if (len <= 2) {
                return 0;
            } else if (len > 5) {
                return 2;
            } else {
                return 1;
            }// w  w  w .  ja v  a  2s . c om
        }
    }
    return FuzzyQuery.floatToEdits(asFloat(), termLen(text));
}

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));
}

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

License:Apache License

@Test
public void testFuzzyQueryWithFieldsBuilder() throws IOException {
    IndexQueryParserService queryParser = queryParser();
    Query parsedQuery = queryParser.parse(
            fuzzyQuery("name.first", "sh").minSimilarity(0.1f).prefixLength(1).boost(2.0f).buildAsBytes())
            .query();// ww w.j  a v a  2  s .c om
    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.test.unit.index.query.SimpleIndexQueryParserTests.java

License:Apache License

@Test
public void testFuzzyQueryWithFields() throws IOException {
    IndexQueryParserService queryParser = queryParser();
    String query = copyToStringFromClasspath("/org/elasticsearch/test/unit/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));
}