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 .

Reply via email to