[[TOC(inline)]] == Community Bonding Week 1: April 25-May 1 == '' * Read Xapian documentation[[BR]] * Understood existing bindings[[BR]] * Modified the originally proposed design of xapian_index()[[BR]] Note: Will be reviewing this function further in the coming weeks[[BR]]'' == Community Bonding Week 2: May 2-May 8 == '' * Made further modifications to xapian_index() [[BR]] Draft of xapian_index() [[https://docs.google.com/document/d/1RWHgeju_BycgtMtcuvT7uz5PeuxCwZV7ApZ4YbOcg7Y/edit?usp=sharing]] [[BR]] Modified draft of xapian_index() [[https://docs.google.com/document/d/1X0WI5RjAEVpwJw9Ldga22sTTVfAexWQ3nFPZskDhmvE/edit?usp=sharing]] * Determined the output structure of xapian_search (developed sample functions) '' == Community Bonding Week 3: May 9-May 15 == '' * Determined the input structure of queries for simple as well as advanced search [[BR]] * Made minor modifications to xapian_index()[[BR]] * Reviewed and modified the originally proposed design of xapian_search() [[BR]] Draft of xapian_search() [[https://docs.google.com/document/d/1bLSPVQq9MjEVbPjqfZa2Vr7bfrRFo-T3hVXlp5yjAgM/edit?usp=sharing]] '' == Community Bonding Week 4: May 16-May 22 == '' * Determined an R package to use for testing: testthat [[https://cran.r-project.org/web/packages/testthat/index.html]] * Determined an R package to use for argument checks: checkmate [[https://cran.r-project.org/web/packages/checkmate/index.html]] * Developed code samples that would be helpful during implementation * Made further modifications to query structure == Coding Week 1: May 23-May 29 == * Determined package structure: Access to Xapian functionalities will be supported via three main wrappers: DatabaseWrapper, IndexingWrapper, SearchWrapper [[BR]] * Developed the basic structure of IndexingWrapper (xapian_index() function accepts a data frame and a number of other compulsory and optional data structures as input arguments. In implementing the indexing function, each row in the data frame is considered a Xapian::Document.) * Exposed the following Xapian functions and constructors in the form of input parameters to xapian_index() function or used internally within it: * Xapian::WritableDatabase -New, replace_document * Xapian::Termgenerator - New, set_stemmer, set_stemming_strategy, set_document, index_text(with prefix),index_text(without prefix), increase_termpos * Xapian::Document - New, set_data, add_boolean_term == Coding Week 2: May 30-June 5 == * Completely facilitated simple indexing with xapian_index() function * Verified the indexing functionality using the search and search_filters examples in Xapian C++ bindings * Developed DatabaseWrapper * Implemented the following functions: * Xapian::Database - New, get_description, has_positions, get_doccount, get_lastdocid, get_avlength, get_doclength_lower_bound, get_doclength_upper_bound, get_uuid, get_metadata, get_spelling_suggestion, term_exists, get_collection_freq, get_value_freq, get_value_lower_bound, get_value_upper_bound == Coding Week 3: June 6-June 12 == * Added function documentation with roxygen2 * Developed SearchWrapper * Exposed the following Xapian functions and constructors in the form of input parameters to xapian_search function or used internally within it: * Xapian::Query - New * Xapian::QueryParser - New, set_stemmer, set_stemming_strategy, add_prefix, parse_query * Xapian::Enquire - New, set_query, get_mset * Xapian::MSet - New * Xapian::MSetIterator - New, get_document == Coding Week 4: June 13-June 19 == * Modified the implementation of xapian_search * Added tests for simple indexing and search with testthat R package * Documented simple indexing and search == Coding Week 5: June 20-June 26 == * Added code to handle valueSlots parameter in IndexingWrapper * Designed advanced query structure * Resolved some issues in package repository == Coding Week 6: June 27-July 3 (Midterm deadline June 27) == * Implemented xapian_delete * Added advanced indexing examples - Verified the indexing functionality using the search facets and search_ranges examples in xapian C++ bindings * Started implementing advanced search features == Coding Week 7: July 4-July 10 == * Supported faceted search via xapian_search function * Continued to implement remaining advanced search features == Coding Week 8: July 11-July 17 == * Completely supported 'range' queries via xapian_search function * Had mid semester exams this week == Coding Week 9: July 18-July 24 == * Completed advanced query implementation * Modified the implementation of faceted search * Developed R examples corresponding to index_ranges,index_facets,search_filters and search_facets examples in the Getting started guide with Xapian. * Added automated tests == Coding Week 10: July 25-July 31 == * Supported ordering of search results * Added automated tests to verify that search results can be sorted * Completed package documentation * Modified package to remove NOTES and Warnings with R CMD Build == Coding Week 11: August 1-August 7 == * Wrote some articles explaining the usage of RXapian functions * Supported continuous integration with Travis-CI * Added tests to check compatibility of range queries with Xapian version * Supported range queries for Xapian versions older than 1.3.6 == Coding Week 12: August 8-August 14 == * Resolved formatting issues * Reimplemented xapian_delete to support document deletion by docid and by term * Studied the structure of RcppBDT, Reddis * Wrapped Database class with Rcpp Modules (note: this will not be directly useful for RXapian's functions) == Submit code and evaluations: August 15-August 23 == * Worked on improving RXapian documentation