Page "Proposals/BEP-0014" was changed by antonia.horincar Diff URL: <https://issues.apache.org/bloodhound/wiki/Proposals/BEP-0014?action=diff&version=5> Revision 5 Changes: -------8<------8<------8<------8<------8<------8<------8<------8<-------- Index: Proposals/BEP-0014 ========================================================================= --- Proposals/BEP-0014 (version: 4) +++ Proposals/BEP-0014 (version: 5) @@ -31,13 +31,13 @@ query.find_by_phrase(title="Bloodhound").paginate(4, 40).execute() It also supports more complex queries than solrpy, being a better solution when regarding the long term development of Bloodhound. Important features like pagination, and facets can be accomplished with the provided methods in sunburnt. One way of achieving spell checking, and suggestions is to extend the default Sunburnt functionality, as shown in this example [4]. -On the other hand, solrpy doesn’t have any dependencies, as it works out of the box without any issues. Sunburnt needs httplib2 [5] (or requests [6]) and lxml [7]. It is also strongly recommended to use the mx.DateTime [8] and the pytz [9] libraries for a better experience. +On the other hand, solrpy doesn’t have any dependencies, as it works out of the box without any issues. Sunburnt needs httplib2 [5] (or requests [6]) and lxml [7]. It is also strongly recommended to use the pytz [8] library for a better experience. Since Sunburnt provides a more extensive way of using the Solr search service features, it will be the one used for the project, but switching from Sunburnt to Solrpy and vice-versa is easy in the early development stages. == Proposal #proposal -The first step that needs to be taken when integrating the Solr backend service to an application is having the Solr service installed. Solr must be run on a server that supports Java, such as Apache Tomcat, or Jetty. Installing a Tomcat server is very straightforward on Linux and Mac machines [10] [11], as well as having the Solr service installed on a Tomcat instance. +The first step that needs to be taken when integrating the Solr backend service to an application is having the Solr service installed. Solr must be run on a server that supports Java, such as Apache Tomcat, or Jetty. Installing a Tomcat server is very straightforward on Linux and Mac machines [9] [10], as well as having the Solr service installed on a Tomcat instance. After having the Tomcat server up and running, the next step is creating Solr schemas for the Bloodhound classes that are searchable (i.e. Tickets, Comments, Milestones, etc.) This is done through the schema.xml files in the Solr configuration folders. These files must contain information about all the fields of the classes that must be indexed. This feature of Solr (that makes it different from Lucene, which does not require a schema) makes searching very flexible, by allowing only the defined fields to be searchable. @@ -45,14 +45,14 @@ After having Solr configured and running, the next step is making the Bloodhound instance interact with the Solr service for the searching and indexing operations. This will be done using the Sunburnt library, which provides methods for interacting with the Solr JSON API in a REST-ful way. Next, the Solr service will be pre-populated with the existing data in Bloodhound database, by creating a script to iterate through all the fields and add their values in Solr. Therefore, method calls of the Sunburnt instance are required in the Bloodhound code. -In order to interact with Solr from the Bloodhound instance, the existing callbacks [12] for interacting with the main Bloodhound searchable objects, will be used: +In order to interact with Solr from the Bloodhound instance, the existing callbacks [11] for interacting with the main Bloodhound searchable objects, will be used: - on creation, insert a new entry in the Solr service - on delete, find the corresponding entry in Solr, and delete it. - on editing, find the corresponding entry in Solr, delete it, and add the entry with the new correct information Placing the Solr interactions in the callbacks ensures that every successful operation triggers the corresponding operation with Solr. -When the user performs a search, the results returned, are the ones provided by the Solr instance for the searched query. All these operations can be done in the existent Bloodhound implementation, using the ISearchBackend [13] interface, which provides methods for all the operations described above (adding, editing, deleting, and querying). +When the user performs a search, the results returned, are the ones provided by the Solr instance for the searched query. All these operations can be done in the existent Bloodhound implementation, using the ISearchBackend [12] interface, which provides methods for all the operations described above (adding, editing, deleting, and querying). The code will be structured as a plugin, which can be enabled, or disabled, so that the administrator can switch between multiple backend engines (when they decide that Solr is not suitable for their project). @@ -98,16 +98,20 @@ 5. https://code.google.com/p/httplib2/ 6. http://requests.readthedocs.org/en/latest/ 7. http://lxml.de/ -8. http://www.egenix.com/products/python/mxBase/mxDateTime/ -9. http://pytz.sourceforge.net/ -10. http://wolfpaulus.com/jounal/mac/tomcat7/ -11. https://www.digitalocean.com/community/articles/how-to-install-apache-tomcat-on-ubuntu-12-04 -13. https://github.com/apache/bloodhound/blob/trunk/bloodhound_search/bhsearch/api.py#L94 -12. https://github.com/apache/bloodhound/blob/trunk/bloodhound_search/bhsearch/search_resources/ticket_search.py#L45 +8. http://pytz.sourceforge.net/ +9. http://wolfpaulus.com/jounal/mac/tomcat7/ +10. https://www.digitalocean.com/community/articles/how-to-install-apache-tomcat-on-ubuntu-12-04 +11. https://github.com/apache/bloodhound/blob/trunk/bloodhound_search/bhsearch/search_resources/ticket_search.py#L45 +12. https://github.com/apache/bloodhound/blob/trunk/bloodhound_search/bhsearch/api.py#L94 == Copyright #copyright -<In this section all licensing issues should be meticulously exposed . Library and plugin dependencies are among the most important topics . On the other hand each BEP will be explicitly labelled with a copyright statement like shown below, so should not change that. Requests for a different copyright statement have to be posted to [email protected] . For more details consult [wiki:/Proposals#what-belongs-in-a-successful-bep BEP structure explained] .> +Apache Solr holds the Apache 2.0 license +Sunburnt holds the MIT/X11 license. +Httplib2 holds the MIT license. +Requests holds the Apache 2.0 license. +Lxml holds the BSD license. +Pytz holds the MIT license. Copyright © 2009-2012 The [http://www.apache.org Apache Software Foundation] [[BR]] Licensed under the [http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0]. -------8<------8<------8<------8<------8<------8<------8<------8<--------
-- Page URL: <https://issues.apache.org/bloodhound/wiki/Proposals/BEP-0014> Apache Bloodhound <https://issues.apache.org/bloodhound/> The Apache Bloodhound issue tracker This is an automated message. Someone added your email address to be notified of changes on 'Proposals/BEP-0014' page. If it was not you, please report to .
