Clean Java

There is always a bigger game

How to make keyword search in Endeca using presentation API?

with 2 comments


package org.sanju.search.endeca;

import com.endeca.navigation.DimValIdList;
import com.endeca.navigation.ENEConnection;
import com.endeca.navigation.ENEQuery;
import com.endeca.navigation.ENEQueryException;
import com.endeca.navigation.ENEQueryResults;
import com.endeca.navigation.ERec;
import com.endeca.navigation.ERecSearch;
import com.endeca.navigation.ERecSearchList;
import com.endeca.navigation.HttpENEConnection;

/**
 * @author sanju.org
 *
 * Sample client which connect to an MDEX server and make keyword search.
 * Query will be applied with nvalue zero and the search term will be
 * searched against all searchable keys in the index.
 */

public class KeywordSearchClient {

    private static final String MDEX_HOST = "localhost";

    private static final Integer MDEX_PORT = 15000;

    /**
     * @param args
     * @throws ENEQueryException
     */
    public static void main(final String[] args) throws ENEQueryException {

        final ENEQueryResults results = createConnection().query(createKeywordQuery("shirt"));
        final StringBuilder builder = new StringBuilder();
        builder.append("Found ");
        builder.append(results.getNavigation().getERecs().size());
        builder.append(" results.\n");
        for (Object result : results.getNavigation().getERecs()) {
            final ERec eRec = (ERec) result;
            for (Object key : eRec.getProperties().keySet()) {
                builder.append(key);
                builder.append(" >> ");
                builder.append(eRec.getProperties().get(key));
            }
        }
        System.out.println(builder.toString());
    }

    @SuppressWarnings("unchecked")
    private static ENEQuery createKeywordQuery(final String searchTerm) {
        final ENEQuery query = new ENEQuery();
        final DimValIdList dimValIdList = new DimValIdList("0");
        query.setNavDescriptors(dimValIdList);
        final ERecSearchList searches = new ERecSearchList();
        final ERecSearch eRecSearch = new ERecSearch("All", searchTerm);
        searches.add(eRecSearch);
        query.setNavERecSearches(searches);
        return query;
    }

    /**
     * @return
     */
    private static ENEConnection createConnection() {
        return new HttpENEConnection(MDEX_HOST, MDEX_PORT);
    }

}

About these ads

Written by cleanjava

November 16, 2012 at 5:59 pm

2 Responses

Subscribe to comments with RSS.

  1. [...] How to make keyword search in Endeca using presentation API? (cleanjava.wordpress.com) [...]

  2. this was most helpfull thanks..:)

    amogh

    May 21, 2013 at 4:29 pm


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: