Example usage for org.apache.lucene.queryparser.flexible.standard QueryParserUtil escape

List of usage examples for org.apache.lucene.queryparser.flexible.standard QueryParserUtil escape

Introduction

In this page you can find the example usage for org.apache.lucene.queryparser.flexible.standard QueryParserUtil escape.

Prototype

public static String escape(String s) 

Source Link

Document

Returns a String where those characters that TextParser expects to be escaped are escaped by a preceding \.

Usage

From source file:control.Controller.java

@Override
public void actionPerformed(ActionEvent e) {
    if (!NER_Handler.error.isEmpty()) {
        JOptionPane.showMessageDialog(null, NER_Handler.error);
        return;//from w ww.  j  av a2 s. co m
    }
    switch (e.getActionCommand()) {
    case "Toggle tf_idf use":
        graph.tf_idf_useage = !graph.tf_idf_useage;
        break;
    case "csv output":
        graph.output = !graph.output;
        break;
    case "anotate":
        if (!graph.indexLoaded) {
            graph.initialize();
        }
        float bTime = System.nanoTime();
        ArrayList<String> words = ner.searchEntities(gui.textInput.getText());
        ArrayList<String> tmp = new ArrayList<>();
        for (String word : words) {
            if (!word.matches(".*[\"\\']+.*")) {
                tmp.add(QueryParserUtil.escape(word));
            }
        }
        words = tmp;
        float time = System.nanoTime() - bTime;
        System.out.println("Anotationtime :" + (time / (Math.pow(10, 6))));
        String newText = "";
        for (String s : words) {
            newText += s + "\n";
        }

        gui.entityOutput.setText(newText);
        HashMap<String, String> map = graph.findMostPromisingURI(words);
        newText = "";
        for (String s : words) {
            newText += (map.get(s)) + "\n";
            //                    newText+=GraphHandler.getEntity(map.get(s))+"\n";
        }
        gui.neighborOutput.setText(newText);
        break;
    }
}

From source file:net.asteasolutions.cinusuidi.sluncho.utils.SearchUtils.java

public static String cleanup(String str) {
    String result = str.replace("?", "");
    result = result.replace(".", "");
    result = result.replace("!", "");
    result = QueryParserUtil.escape(str.trim());
    int lastLen = result.length();
    int newLen = lastLen;

    do {//from w w w.j  ava2 s  .  c om
        lastLen = newLen;
        result = result.replaceAll("  ", " ");
        newLen = result.length();
    } while (newLen < lastLen);
    return result;
}

From source file:org.kew.rmf.core.lucene.LuceneHandler.java

License:Open Source License

/**
 * Retrieves a record by indexed id from the Lucene datastore.
 *//*from   w ww. ja  v a2 s .co m*/
public Map<String, String> getRecordById(String id) throws IOException {
    String queryString = Configuration.ID_FIELD_NAME + ":" + QueryParserUtil.escape(id);

    TopDocs resultDoc = null;
    try {
        resultDoc = queryLucene(queryString, getIndexSearcher(), 1);
    } catch (ParseException e) {
        logger.error("Unexpected error parsing query '" + queryString + "'", e);
        return null;
    }

    if (resultDoc.scoreDocs.length > 0) {
        return LuceneUtils.doc2Map(getFromLucene(resultDoc.scoreDocs[0].doc));
    } else {
        return new HashMap<>();
    }
}

From source file:org.segrada.service.repository.orientdb.OrientDbFileRepository.java

License:Apache License

@Override
public List<IFile> findBySearchTerm(String term, int maximum, boolean returnWithoutTerm) {
    List<IFile> hits = new ArrayList<>();

    // empty search term and returnWithoutTerm false
    if (!returnWithoutTerm && (term == null || term.equals("")))
        return hits;

    initDb();/* w  w w . j  a  v a 2s  .c  om*/

    // search for term
    List<ODocument> result;
    if (term != null && !term.isEmpty()) {
        // create query term for lucene full text search
        StringBuilder sb = new StringBuilder();
        boolean first = true;
        for (String termPart : term.toLowerCase().split("\\s+")) {
            termPart = QueryParserUtil.escape(termPart);
            TermQuery termQuery1 = new TermQuery(new Term("title", termPart + "*"));
            TermQuery termQuery2 = new TermQuery(new Term("filename", termPart + "*"));
            if (first)
                first = false;
            else
                sb.append(" AND ");
            sb.append('(').append(termQuery1.toString()).append(" OR ").append(termQuery2.toString())
                    .append(')');
        }

        // execute query
        OSQLSynchQuery<ODocument> query = new OSQLSynchQuery<>(
                "select * from File where " + createSearchTermFullText(term) + " LIMIT " + maximum);
        result = db.command(query).execute();
    } else { // no term, just find top X entries
        // execute query
        OSQLSynchQuery<ODocument> query = new OSQLSynchQuery<>(
                "select * from File " + getDefaultOrder(true) + " LIMIT " + maximum);
        result = db.command(query).execute();
    }

    // browse entities
    for (ODocument document : result) {
        hits.add(convertToEntity(document));
    }

    return hits;
}

From source file:org.segrada.service.repository.orientdb.OrientDbFileRepository.java

License:Apache License

/**
 * create search term for full text search
 * @param term term(s) to search for/*from w  w w. j a  v a 2 s  . com*/
 * @return search term part
 */
private static String createSearchTermFullText(String term) {
    // create query term for lucene full text search
    StringBuilder sb = new StringBuilder(" [title, filename] LUCENE '");
    boolean first = true;
    for (String termPart : term.toLowerCase().split("\\s+")) {
        if (termPart.contains(":"))
            termPart = "\"" + termPart + "\"";
        else
            termPart = QueryParserUtil.escape(termPart);
        if (termPart.contains("."))
            termPart = "\"" + termPart + "\"";
        else if (!termPart.startsWith("\"") || !termPart.endsWith("\""))
            termPart += "*";
        if (first)
            first = false;
        else
            sb.append(' ');
        sb.append(termPart);
    }
    sb.append('\'');

    return sb.toString();
}

From source file:org.segrada.service.repository.orientdb.OrientDbNodeRepository.java

License:Apache License

/**
 * create search term for full text search
 * @param term term(s) to search for/*from  w w  w .j  a  v  a 2 s  .com*/
 * @return search term part
 */
private static String createSearchTermFullText(String term) {
    // create query term for lucene full text search
    StringBuilder sb = new StringBuilder(" [title, alternativeTitles] LUCENE '");
    boolean first = true;
    for (String termPart : term.toLowerCase().split("\\s+")) {
        if (termPart.contains(":"))
            termPart = "\"" + termPart + "\"";
        else
            termPart = QueryParserUtil.escape(termPart);
        if (termPart.contains("."))
            termPart = "\"" + termPart + "\"";
        else if (!termPart.startsWith("\"") || !termPart.endsWith("\""))
            termPart += "*";
        if (first)
            first = false;
        else
            sb.append(' ');
        sb.append(termPart);
    }
    sb.append('\'');

    return sb.toString();
}

From source file:org.segrada.service.repository.orientdb.OrientDbPictogramRepository.java

License:Apache License

@Override
public List<IPictogram> findBySearchTerm(String term, int maximum, boolean returnWithoutTerm) {
    List<IPictogram> hits = new ArrayList<>();

    // empty search term and returnWithoutTerm false
    if (!returnWithoutTerm && (term == null || term.equals("")))
        return hits;

    initDb();/* w w w.  j ava2s.  co  m*/

    // search for term
    List<ODocument> result;
    if (term != null && !term.isEmpty()) {
        // create query term for lucene full text search
        StringBuilder sb = new StringBuilder();
        boolean first = true;
        for (String termPart : term.toLowerCase().split("\\s+")) {
            termPart = QueryParserUtil.escape(termPart);
            TermQuery termQuery = new TermQuery(new Term("title", termPart + "*"));
            if (first)
                first = false;
            else
                sb.append(" AND ");
            sb.append(termQuery.toString());
        }

        // execute query
        OSQLSynchQuery<ODocument> query = new OSQLSynchQuery<>(
                "select * from Pictogram where title LUCENE ? LIMIT " + maximum);
        result = db.command(query).execute(sb.toString());
    } else { // no term, just find top X entries
        // execute query
        OSQLSynchQuery<ODocument> query = new OSQLSynchQuery<>("select * from Pictogram LIMIT " + maximum);
        result = db.command(query).execute();
    }

    // browse entities and populate list
    for (ODocument document : result)
        hits.add(convertToEntity(document));

    return hits;
}

From source file:org.segrada.service.repository.orientdb.OrientDbRelationTypeRepository.java

License:Apache License

/**
 * create search term for full text search
 * @param term term(s) to search for/*from  www.  j a v  a 2 s . c  o m*/
 * @return search term part
 */
private static String createSearchTermFullText(String term) {
    // create query term for lucene full text search
    StringBuilder sb = new StringBuilder(" [fromTitle, toTitle] LUCENE '");
    boolean first = true;
    for (String termPart : term.toLowerCase().split("\\s+")) {
        if (termPart.contains(":"))
            termPart = "\"" + termPart + "\"";
        else
            termPart = QueryParserUtil.escape(termPart);
        if (termPart.contains("."))
            termPart = "\"" + termPart + "\"";
        else if (!termPart.startsWith("\"") || !termPart.endsWith("\""))
            termPart += "*";
        if (first)
            first = false;
        else
            sb.append(' ');
        sb.append(termPart);
    }
    sb.append('\'');

    return sb.toString();
}

From source file:org.segrada.service.repository.orientdb.OrientDbSourceRepository.java

License:Apache License

/**
 * create search term for full text search
 * @param term term(s) to search for// ww  w . j  a  v  a2 s. com
 * @return search term part
 */
private static String createSearchTermFullText(String term) {
    StringBuilder sb = new StringBuilder(" [longTitle,shortRef,shortTitle] LUCENE '");
    boolean first = true;
    for (String termPart : term.toLowerCase().split("\\s+")) {
        if (termPart.contains(":"))
            termPart = "\"" + termPart + "\"";
        else
            termPart = QueryParserUtil.escape(termPart);
        if (termPart.contains("."))
            termPart = "\"" + termPart + "\"";
        else if (!termPart.startsWith("\"") || !termPart.endsWith("\""))
            termPart += "*";
        if (first)
            first = false;
        else
            sb.append(' ');
        sb.append(termPart);
    }
    sb.append('\'');

    return sb.toString();
}

From source file:org.segrada.service.repository.orientdb.OrientDbTagRepository.java

License:Apache License

@Override
public List<ITag> findBySearchTerm(String term, int maximum, boolean returnWithoutTerm) {
    List<ITag> hits = new ArrayList<>();

    // empty search term and returnWithoutTerm false
    if (!returnWithoutTerm && (term == null || term.equals("")))
        return hits;

    initDb();//w w w.  ja  v a2 s.  c o  m

    // search for term
    List<ODocument> result;
    if (term != null && !term.isEmpty()) {
        // create query term for lucene full text search
        StringBuilder sb = new StringBuilder();
        boolean first = true;
        for (String termPart : term.toLowerCase().split("\\s+")) {
            termPart = QueryParserUtil.escape(termPart);
            TermQuery termQuery = new TermQuery(new Term("title", termPart + "*"));
            if (first)
                first = false;
            else
                sb.append(" AND ");
            sb.append(termQuery.toString());
        }

        // execute query
        OSQLSynchQuery<ODocument> query = new OSQLSynchQuery<>(
                "select * from Tag where title LUCENE ? LIMIT " + maximum);
        result = db.command(query).execute(sb.toString());
    } else { // no term, just find top X entries
        // execute query
        OSQLSynchQuery<ODocument> query = new OSQLSynchQuery<>(
                "select * from Tag " + getDefaultOrder(true) + " LIMIT " + maximum);
        result = db.command(query).execute();
    }

    // browse entities
    for (ODocument document : result) {
        hits.add(convertToEntity(document));
    }

    return hits;
}