Package org.apache.lucene.queryParser

Examples of org.apache.lucene.queryParser.MultiFieldQueryParser


  public SearchResult<AgencyAndId> searchForRoutesByName(String value,
      int maxResultCount, double minScoreToKeep) throws IOException,
      ParseException {

    return search(new MultiFieldQueryParser(NAME_FIELDS, _analyzer), value,
        maxResultCount, minScoreToKeep);
  }
View Full Code Here


            final String keyword,
            final String[] fields,
            final Class<?> clazz,
            final Criteria criteria,
            final Analyzer analyzer) {
        final MultiFieldQueryParser parser = new MultiFieldQueryParser(
                version, fields, analyzer);
        Query query = null;
        try {
            query = parser.parse(keyword);
        } catch (ParseException e) {
            log.error("Error on Parse Query " + e);
        }
        return fetchFullTextSession(clazz, criteria, analyzer, query);
    }
View Full Code Here

    SortField sf = new SortField(sortProperty, SortField.STRING, reverse);
    logger.info("searchText:" + searchText);
    Query query = new QueryParser(Version.LUCENE_34, field, analyzer).parse(entityName);
    if(searchText != null && !searchText.equals(""))
    {
      MultiFieldQueryParser mfqp = new MultiFieldQueryParser(Version.LUCENE_34, new String[]{field, "contents"}, analyzer);
      mfqp.setDefaultOperator(MultiFieldQueryParser.AND_OPERATOR);
      query = mfqp.parse(entityName + " " + searchText + "*");
    }
   
    logger.info("query" + query);
   
    TopFieldDocs topDocs = searcher.search(query, (Filter) null, 1000000, new Sort(sf));
View Full Code Here

        boostPerField.put("description", 2f);
        boostPerField.put("actors.name", 2f);
        boostPerField.put("categories.name", 0.5f);

        String[] productFields = {"title", "description", "actors.name", "categories.name"};
        QueryParser parser = new MultiFieldQueryParser(productFields, new StandardAnalyzer(), boostPerField);
        parser.setAllowLeadingWildcard(true);
        org.apache.lucene.search.Query luceneQuery;
        luceneQuery = parser.parse(searchQuery);
        return ( (FullTextEntityManager) em ).createFullTextQuery(luceneQuery, Product.class);
    }
View Full Code Here

                System.arraycopy(contentFields, 0, searchFields, 0, queriesSize);

                return MultiFieldQueryParser.parse(LUCENE_VERSION,
                        multiQueryText, searchFields, analyzer);
            } else {
                MultiFieldQueryParser parser =
                        new MultiFieldQueryParser(LUCENE_VERSION,
                                contentFields, analyzer);
                return parser.parse(queryText);
            }
        }
    }
View Full Code Here

                    entityManager.getSearchFactory().getAnalyzer(
                            targetAnalyzerName);

            Query tgtContentPhraseQuery;
            QueryParser contentQueryParser =
                    new MultiFieldQueryParser(Version.LUCENE_29,
                            IndexFieldLabels.CONTENT_FIELDS, targetAnalyzer);
            try {
                tgtContentPhraseQuery =
                        contentQueryParser.parse("\""
                                + QueryParser.escape(constraints
                                        .getSearchString()) + "\"");
            } catch (ParseException e) {
                throw new ZanataServiceException("Failed to parse query", e);
            }

            // Target Query
            BooleanQuery targetQuery = new BooleanQuery();
            targetQuery.add(projectQuery, Occur.MUST);
            targetQuery.add(iterationQuery, Occur.MUST);
            targetQuery.add(tgtContentPhraseQuery, Occur.MUST);
            if (documentsQuery.getTermArrays().size() > 0) {
                targetQuery.add(documentsQuery, Occur.MUST);
            }
            targetQuery.add(localeQuery, Occur.MUST);

            if (!constraints.getIncludedStates().hasTranslated()) {
                TermQuery approvedStateQuery =
                        new TermQuery(new Term(
                                IndexFieldLabels.CONTENT_STATE_FIELD,
                                ContentState.Approved.toString()));
                targetQuery.add(approvedStateQuery, Occur.MUST_NOT);
            }

            if (!constraints.getIncludedStates().hasFuzzy()) {
                TermQuery approvedStateQuery =
                        new TermQuery(new Term(
                                IndexFieldLabels.CONTENT_STATE_FIELD,
                                ContentState.NeedReview.toString()));
                targetQuery.add(approvedStateQuery, Occur.MUST_NOT);
            }

            if (!constraints.getIncludedStates().hasNew()) {
                TermQuery approvedStateQuery =
                        new TermQuery(new Term(
                                IndexFieldLabels.CONTENT_STATE_FIELD,
                                ContentState.New.toString()));
                targetQuery.add(approvedStateQuery, Occur.MUST_NOT);
            }

            FullTextQuery ftQuery =
                    entityManager.createFullTextQuery(targetQuery,
                            HTextFlowTarget.class);
            @SuppressWarnings("unchecked")
            List<HTextFlowTarget> matchedTargets =
                    (List<HTextFlowTarget>) ftQuery.getResultList();
            log.info("got {} HTextFLowTarget results", matchedTargets.size());
            for (HTextFlowTarget htft : matchedTargets) {
                // manually check for case sensitive matches
                if (!constraints.isCaseSensitive()
                        || (contentIsValid(htft.getContents(), constraints))) {
                    if (!htft.getTextFlow().getDocument().isObsolete()) {
                        resultList.add(htft.getTextFlow());
                    }
                }
            }
        }

        if (constraints.isSearchInSource()) {
            // Source locale
            // NB: Assume the first document's locale, or the same target locale
            // if there are no documents
            // TODO Move source locale to the Project iteration level
            LocaleId sourceLocaleId = localeId;
            HProjectIteration projectIteration =
                    projectIterationDAO.getBySlug(projectSlug, iterationSlug);
            if (!projectIteration.getDocuments().isEmpty()) {
                sourceLocaleId =
                        projectIteration.getDocuments().values().iterator()
                                .next().getLocale().getLocaleId();
            }

            // Content query for source
            String sourceAnalyzerName =
                    TextContainerAnalyzerDiscriminator
                            .getAnalyzerDefinitionName(sourceLocaleId.getId());
            Analyzer sourceAnalyzer =
                    entityManager.getSearchFactory().getAnalyzer(
                            sourceAnalyzerName);

            Query srcContentPhraseQuery;
            QueryParser srcContentQueryParser =
                    new MultiFieldQueryParser(Version.LUCENE_29,
                            IndexFieldLabels.CONTENT_FIELDS, sourceAnalyzer);
            try {
                srcContentPhraseQuery =
                        srcContentQueryParser.parse("\""
                                + QueryParser.escape(constraints
                                        .getSearchString()) + "\"");
            } catch (ParseException e) {
                throw new ZanataServiceException("Failed to parse query", e);
            }
View Full Code Here

    analyzer = new SimpleAnalyzer();

    // We only need to search the "data" field, and we'll use a simple MultiFieldQuery
    Version v = Version.LUCENE_35;
    String[] fields = {"data"};
    parser = new MultiFieldQueryParser(v, fields, analyzer);

    // Don't want to return too many matches; this magic number could probably be reduced
    // to improve performance even more.
        BooleanQuery.setMaxClauseCount(8192);
   
View Full Code Here

    boostPerField.put( bookFields[2], ( float ) 4 );
    boostPerField.put( bookFields[3], ( float ) .5 );

    FullTextEntityManager ftEm = org.hibernate.search.jpa.Search.getFullTextEntityManager( ( EntityManager ) em );
    Analyzer customAnalyzer = ftEm.getSearchFactory().getAnalyzer( "customanalyzer" );
    QueryParser parser = new MultiFieldQueryParser(
        Version.LUCENE_29, bookFields,
        customAnalyzer, boostPerField
    );

    org.apache.lucene.search.Query luceneQuery;
    luceneQuery = parser.parse( searchQuery );

    final FullTextQuery query = ftEm.createFullTextQuery( luceneQuery, Book.class );

    return query;
  }
View Full Code Here

            }

            //build a query based on the fields, searchString and cached analyzer
            //NOTE: This is an area for improvement since the MultiFieldQueryParser
            // has some weirdness.
            MultiFieldQueryParser parser = new MultiFieldQueryParser(Version.LUCENE_CURRENT, fields, analyzer);
            Query query = parser.parse(searchString);
            //reset this table model with the new results
            resetSearchResults(is, query);
        } catch (Exception e){
            e.printStackTrace();
        }
View Full Code Here

            String[] fields = {FIELD_NAME};

            //build a query based on the fields, searchString and cached analyzer
            //NOTE: This is an area for improvement since the MultiFieldQueryParser
            // has some weirdness.
            MultiFieldQueryParser parser = new MultiFieldQueryParser(Version.LUCENE_CURRENT, fields, analyzer);
            Query query =parser.parse(searchString);
            //reset this list model with the new results
            resetSearchResults(is, query);
        } catch (Exception e){
            e.printStackTrace();
        }
View Full Code Here

TOP

Related Classes of org.apache.lucene.queryParser.MultiFieldQueryParser

Copyright © 2018 www.massapicom. 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.