Package org.compass.core

Examples of org.compass.core.CompassQuery


        }
        else if (predicate instanceof Predicate.Junction) {
            CompassQueryBuilder.CompassBooleanQueryBuilder bool = builder.bool();
            boolean useMust = (predicate instanceof Predicate.And);
            for (Predicate p : ((Predicate.Junction)predicate).getPredicates()) {
                CompassQuery subquery = queryForPredicate(builder, p);
                if (useMust) {
                    bool.addMust(subquery);
                } else {
                    bool.addShould(subquery);
                }
View Full Code Here


    public List executeQuery (ObjectContext context, QuerySpecification spec)
    {
        CompassSession session = getCompass(context).openSession();
        CompassTransaction tr = session.beginTransaction();
        CompassQueryBuilder builder = session.queryBuilder();
        CompassQuery query = queryForPredicate(builder, spec.getPredicate());

        Class targetClass = ClassUtil.classForName(spec.getEntityName());
        query.setTypes(targetClass);

        // CompassHits hits = session.find(query);
        List results = processHits(context, query.hits());

        tr.commit();
        session.close();

        return results;
View Full Code Here

            this.defaultOptions = defaultOptions;
        }

        public Object doInCompass(CompassSession session) throws CompassException {
            Map options = SearchableMethodUtils.getOptionsArgument(args, defaultOptions, OVERRIDE_WITH_DEFAULTS_IF_NULL);
            CompassQuery compassQuery = compassQueryBuilder.buildQuery(grailsApplication, session, options, args);
            long start = System.currentTimeMillis();
            CompassHits hits = compassQuery.hits();
            if (LOG.isDebugEnabled()) {
                long time = System.currentTimeMillis() - start;
                LOG.debug("query: [" + compassQuery + "], [" + hits.length() + "] hits, took [" + time + "] millis");
            }
            if (hitCollector == null && searchResultFactory == null) {
View Full Code Here

                    for (Iterator iter = objects.iterator(); iter.hasNext(); ) {
                        compassOperations.delete(iter.next());
                    }
                    return null;
                }
                CompassQuery query = null;
                CompassQueryBuilder queryBuilder = session.queryBuilder();
                if (args.length == 0) {
                    query = queryBuilder.matchAll();
                }
                if (clazz != null && ids.isEmpty()) {
View Full Code Here

     */
    private static void setPolyClassFilter(SearchableCompassQueryBuilderClassOptionHelper searchableCompassQueryBuilderClassOptionHelper, CompassSession compassSession, CompassQuery compassQuery, Class clazz, Set subClasses) {
        if (subClasses.size() > 1) {
            Set clazzes = new HashSet(GrailsDomainClassUtils.getClazzes(subClasses));
            clazzes.add(clazz);
            CompassQuery polyClassQuery = searchableCompassQueryBuilderClassOptionHelper.buildPolyClassQuery(compassSession, clazzes);
            CompassQueryFilter instanceFilter = compassSession.queryFilterBuilder().query(polyClassQuery);
            compassQuery.setFilter(instanceFilter);
        }
    }
View Full Code Here

                    LOG.warn("Failed to invoke method " + moreLikeThisQuery.getClass().getName() + "#" + method.getName() + " with value [" + value + "]", ex);
                }
            }
        }

        CompassQuery query = moreLikeThisQuery.toQuery();
        options.remove("class"); // discard class option so it's not added as match alias in CompassQuery by option helper; todo change "class" option to "match: instead
        options.put("class", options.get("match"));
        query = applyOptions(grailsApplication, getCompass(), compassSession, query, options);
//        System.out.println("Query [" + query + "]");
        return query;
View Full Code Here

    public CompassQuery buildQuery(GrailsApplication grailsApplication, CompassSession compassSession, Map options, Object args) {
        Object query = SearchableMethodUtils.getQueryArgument(args);
        Assert.notNull(query, "Missing String or Closure query argument");

        CompassQuery compassQuery;
        if (query instanceof String) {
            compassQuery = stringQueryBuilder.buildQuery(grailsApplication, compassSession, options, query);
        } else {
            Assert.isInstanceOf(Closure.class, query, "query is neither String nor Closure: must be one of these but is [" + query.getClass().getName() + "]");
            Object closureQueryBuilder = InvokerHelper.invokeConstructorOf(closureQueryBuilderClass, compassSession.queryBuilder());
View Full Code Here

        if (closure.getMaximumNumberOfParameters() == 1) {
            result = closure.call(queryBuilder);
        } else {
            result = closure.call();
        }
        CompassQuery query = invoker.getQuery();
        return (CompassQuery) ((query == null) ? result : query);
    }
View Full Code Here

                    closure = null;
                    previous = temp;
                    trace("done nested boolean closure");
                }
                if (invokeArgs.size() > 0 && hasToQuery(invokeArgs.get(0))) {
                    CompassQuery query = toQuery(invokeArgs.get(0));
                    invokeArgs = new ArrayList();
                    invokeArgs.add(query);
                }
            }
View Full Code Here

        }

        public Object doInCompass(CompassSession session) throws CompassException {
            Map options = SearchableMethodUtils.getOptionsArgument(args, defaultOptions);
            options.put("analyzer", "searchableplugin_simple");
            CompassQuery original = compassQueryBuilder.buildQuery(grailsApplication, session, options, args);
            String queryString = original.getSuggestedQuery().toString();
            String suggestedString = queryString;
            if (options.containsKey("class")) {
                // Strip the additional junk from around the query - +(what test) +(alias:B)
                Pattern pattern = Pattern.compile("\\+\\((.+)\\) \\+\\(alias:.+\\)");
                Matcher matcher = pattern.matcher(queryString);
View Full Code Here

TOP

Related Classes of org.compass.core.CompassQuery

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.