Pesquisar este blog

sexta-feira, 18 de novembro de 2011

Apache Solr Parte 3 - Criando um DAO em java

Com a seguinte chamada e possivel fazer a conexão com o solr


private SolrServer solrServer;
   
    public IndexerAndSearcher() {
        try {
            this.solrServer = new CommonsHttpSolrServer("http://localhost:8983/solr");
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }
    }

Para fazer uma pesquisa e simples basta:

/**
     *
     * @param field
     * @param text
     */
    public void search(String field, String text) {
        // http://localhost:8983/solr/select/q=*:*&sort=id+asc&version=2.2
        ModifiableSolrParams params = new ModifiableSolrParams();
        params.set("q", field + ":" + text);

        try {
            QueryResponse queryResponse = solrServer.query(params);
           
            SolrDocumentList documents = queryResponse.getResults();
            System.out.println("\n--\n");
            for(SolrDocument document : documents) {
                System.out.println("Document[" + document.getFieldValue("id") + "]");
                System.out.println("\tDocument Fields[" + document.getFieldNames() + "]");
                System.out.println("\tNome: " + document.getFieldValue("nome"));
                System.out.println("\tDescricao: " + document.getFieldValue("descricao"));
            }
        } catch (SolrServerException e) {
            e.printStackTrace();
        }
       
    }

Para adicionar um documento:

/**
     *
     * @param id
     * @param nome
     * @param descricao
     */
    public void addDocument(String id, String nome, String descricao) {
        SolrInputDocument document = new SolrInputDocument();
        document.addField("id", id);
        document.addField("nome", nome);
        document.addField("descricao", descricao);
        try {
            solrServer.add(document);
            solrServer.commit();
            System.out.println("[Document] Evento cadastrado: " + document.toString());
        } catch (SolrServerException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

Chamando os metodos:

public static void main(String[] args) {
        IndexerAndSearcher indexerAndSearcher = new IndexerAndSearcher();
       
        //indexerAndSearcher.addDocument("1", "Cafe com Tapioca", "Evento de Java do CEJUG em Fortaleza");
        //indexerAndSearcher.addBean("2", "EJES", "Encontro de Java");
       
        indexerAndSearcher.findAllDocuments();
       
        //indexerAndSearcher.search("id", "[2 TO 5]");
    }


Essa e uma demostração simples do que pode ser feito para acessar uma base solr no proximo post eu vou colocar uma aplicação que criei para manipular o solr.





Nenhum comentário:

Postar um comentário