#include #include #include #include "lcn_init.h" #include "lcn_document.h" #include "lcn_pools.h" #include "lcn_index_writer.h" #include "lcn_query_parser.h" #include "lcn_searcher.h" int main (int argc, char *argv[]) { apr_initialize (); atexit (apr_terminate); lcn_init (); lcn_thread_attach (); lcn_document_t *doc; lcn_field_t *field; lcn_error_t *err; apr_pool_t *pool = lcn_pool_create (NULL); err = lcn_document_create (&doc, pool); if (err) fprintf (stderr, "error creating document :(\n"); err = lcn_field_text (&field, "path", "foo", pool); if (err) fprintf (stderr, "error creating field: %s\n", err->message); err = lcn_document_add_field (doc, field); if (err) fprintf (stderr, "error adding field to document :(\n"); lcn_analyzer_t *analyzer; err = lcn_analyzer_standard_create (&analyzer, pool); if (err) fprintf (stderr, "error creating analyzer: %s\n", err->message); lcn_index_writer_t *writer; err = lcn_index_writer_create (&writer, "index", analyzer, pool); if (err) fprintf (stderr, "error creating index: %s\n", err->message); err = lcn_index_writer_add_document (writer, doc, pool); if (err) fprintf (stderr, "error adding document to index: %s\n", err->message); lcn_searcher_t *searcher; err = lcn_index_searcher_open (&searcher, "test/data/index", pool); if (err) fprintf (stderr, "error opening searcher... %s\n", err->message); lcn_query_t *query; err = lcn_query_parse (&query, "foo", "contents", analyzer, pool); if (err) fprintf (stderr, "error parsing query\n"); apr_array_header_t *hits = NULL; err = lcn_searcher_search (&hits, searcher, query, NULL, NULL, pool); if (err) fprintf (stderr, "error running search: %s\n", err->message); if (hits) printf ("got %d results\n", hits->nelts); lcn_pool_destroy (pool); lcn_thread_detach (); return 0; }