Author: ahorincar
Date: Mon Jun  2 22:29:12 2014
New Revision: 1599380

URL: http://svn.apache.org/r1599380
Log:
Created package for bloodhound_solr plugin, created class for instantiating a 
SolrInteface object, created class and methods for indexing a single document 
and wrote a custom Solr schema (which, at the moment, contains only some of the 
required fields)

Added:
    bloodhound/branches/bep_0014_solr/bloodhound_solr/
    bloodhound/branches/bep_0014_solr/bloodhound_solr/bhsolr/
    bloodhound/branches/bep_0014_solr/bloodhound_solr/bhsolr/__init__.py
    bloodhound/branches/bep_0014_solr/bloodhound_solr/bhsolr/index.py
    bloodhound/branches/bep_0014_solr/bloodhound_solr/bhsolr/schemadoc/
    
bloodhound/branches/bep_0014_solr/bloodhound_solr/bhsolr/schemadoc/schema.xml
    bloodhound/branches/bep_0014_solr/bloodhound_solr/bhsolr/solr.py
    bloodhound/branches/bep_0014_solr/bloodhound_solr/setup.py

Added: bloodhound/branches/bep_0014_solr/bloodhound_solr/bhsolr/__init__.py
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/bep_0014_solr/bloodhound_solr/bhsolr/__init__.py?rev=1599380&view=auto
==============================================================================
    (empty)

Added: bloodhound/branches/bep_0014_solr/bloodhound_solr/bhsolr/index.py
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/bep_0014_solr/bloodhound_solr/bhsolr/index.py?rev=1599380&view=auto
==============================================================================
--- bloodhound/branches/bep_0014_solr/bloodhound_solr/bhsolr/index.py (added)
+++ bloodhound/branches/bep_0014_solr/bloodhound_solr/bhsolr/index.py Mon Jun  
2 22:29:12 2014
@@ -0,0 +1,24 @@
+import sunburnt
+from solr import Solr
+
+class SolrIndex(object):
+  def __init__(self, solr_instance):
+    self.solr_instance = solr_instance
+
+  def index(self, doc):
+    self.solr_instance.solr_interface.add(doc)
+    self.solr_instance.solr_interface.commit()
+
+  def query(self, query):
+    self.solr_instance.solr_interface.query(query)
+
+if __name__ == '__main__':
+
+  document = {"id":"0553573403",
+              "name": "Ticket 1"}
+
+  si = Solr("http://localhost:8983/solr/";)
+  sindex = SolrIndex(si)
+  sindex.index(document)
+  sindex.query("Ticket")
+

Added: 
bloodhound/branches/bep_0014_solr/bloodhound_solr/bhsolr/schemadoc/schema.xml
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/bep_0014_solr/bloodhound_solr/bhsolr/schemadoc/schema.xml?rev=1599380&view=auto
==============================================================================
--- 
bloodhound/branches/bep_0014_solr/bloodhound_solr/bhsolr/schemadoc/schema.xml 
(added)
+++ 
bloodhound/branches/bep_0014_solr/bloodhound_solr/bhsolr/schemadoc/schema.xml 
Mon Jun  2 22:29:12 2014
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<!-- A custom Solr schema containing BH searchable fields; not yet finished -->
+<schema name="example" version="1.5">
+
+<fields>
+  <field name="_version_" type="long" indexed="true" stored="true"/>
+  <field name="_root_" type="string" indexed="true" stored="false"/>
+
+  <!-- BH fields -->
+  <field name="unique_id" type="string" indexed="true" stored="true" 
required="true" multiValued="false" />
+  <field name="id" type="string" indexed="true" stored="true" required="true" 
multiValued="false" />
+  <field name="type" type="string" indexed="true" stored="true" 
required="true" multiValued="false"/>
+  <field name="product" type="string" indexed="true" stored="true" 
required="true" multiValued="false"/>
+  <field name="milestone" type="string" indexed="true" stored="true" 
required="true" multiValued="false"/>
+  <field name="time" type="date" indexed="true" stored="true" required="true" 
multiValued="false"/>
+  <field name="due" type="date" indexed="true" stored="true" required="true" 
multiValued="false"/>
+  <field name="completed" type="date" indexed="true" stored="true" 
required="true" multiValued="false"/>
+  <field name="author" type="string" indexed="true" stored="true" 
required="true" multiValued="false"/>
+  <field name="component" type="string" indexed="true" stored="true" 
required="true" multiValued="false"/>
+  <field name="status" type="string" indexed="true" stored="true" 
required="true" multiValued="false"/>
+  <field name="resolution" type="string" indexed="true" stored="true" 
required="true" multiValued="false"/>
+  <field name="keywords" type="string" indexed="true" stored="true" 
required="true" multiValued="false"/>
+  <field name="summary" type="text_general" indexed="true" stored="true" 
required="true" multiValued="false"/>
+  <field name="content" type="text_general" indexed="true" stored="true" 
required="true" multiValued="false"/>
+  <field name="changes" type="text_general" indexed="true" stored="true" 
required="true" multiValued="false"/>
+  <field name="owner" type="text_general" indexed="true" stored="true" 
required="true" multiValued="false"/>
+  <field name="repository" type="text_general" indexed="true" stored="true" 
required="true" multiValued="false"/>
+  <field name="revision" type="text_general" indexed="true" stored="true" 
required="true" multiValued="false"/>
+  <field name="message" type="text_general" indexed="true" stored="true" 
required="true" multiValued="false"/>
+  <field name="required_permission" type="string" indexed="true" stored="true" 
required="true" multiValued="false"/>
+  <field name="name" type="text_general" indexed="true" stored="true" 
required="true" multiValued="false"/>
+  <field name="query_suggestion_basket" type="text_general" indexed="true" 
stored="true" required="true" multiValued="false"/>
+  <field name="relations" type="lowercase" indexed="true" stored="true" 
required="true" multiValued="false"/>
+  <field/>
+
+
+  <field name="name" type="text_general" indexed="true" stored="true"/>
+</fields>
+
+<uniqueKey>unique_id</uniqueKey>
+
+<copyField source="name" dest="text"/>
+
+<types>
+  <!-- Field type definitions -->
+  <fieldType name="string" class="solr.StrField" sortMissingLast="true" />
+  <fieldType name="long" class="solr.TrieLongField" precisionStep="0" 
positionIncrementGap="0"/>
+
+  <fieldType name="text_general" class="solr.TextField" 
positionIncrementGap="100">
+    <analyzer type="index">
+      <tokenizer class="solr.StandardTokenizerFactory"/>
+      <filter class="solr.StopFilterFactory" ignoreCase="true" 
words="stopwords.txt" />
+      <filter class="solr.LowerCaseFilterFactory"/>
+    </analyzer>
+    <analyzer type="query">
+      <tokenizer class="solr.StandardTokenizerFactory"/>
+      <filter class="solr.StopFilterFactory" ignoreCase="true" 
words="stopwords.txt" />
+      <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" 
ignoreCase="true" expand="true"/>
+      <filter class="solr.LowerCaseFilterFactory"/>
+    </analyzer>
+  </fieldType>
+  <fieldType name="date" class="solr.TrieDateField" precisionStep="0" 
positionIncrementGap="0"/>
+  <fieldType name="lowercase" class="solr.TextField" 
positionIncrementGap="100">
+  <analyzer>
+    <tokenizer class="solr.KeywordTokenizerFactory"/>
+    <filter class="solr.LowerCaseFilterFactory" />
+  </analyzer>
+</fieldType>
+
+</schema>
+

Added: bloodhound/branches/bep_0014_solr/bloodhound_solr/bhsolr/solr.py
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/bep_0014_solr/bloodhound_solr/bhsolr/solr.py?rev=1599380&view=auto
==============================================================================
--- bloodhound/branches/bep_0014_solr/bloodhound_solr/bhsolr/solr.py (added)
+++ bloodhound/branches/bep_0014_solr/bloodhound_solr/bhsolr/solr.py Mon Jun  2 
22:29:12 2014
@@ -0,0 +1,10 @@
+from sunburnt import SolrInterface
+from httplib2 import Http
+
+class Solr():
+
+  def __init__(self, solr_url, schema_file):
+  """ Creates a SolrInterface object with the solr server url and a custom 
schema
+      file"""
+    self.solr_url = solr_url
+    self.solr_interface = SolrInterface(url=solr_url, schemadoc=schema_file)

Added: bloodhound/branches/bep_0014_solr/bloodhound_solr/setup.py
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/bep_0014_solr/bloodhound_solr/setup.py?rev=1599380&view=auto
==============================================================================
--- bloodhound/branches/bep_0014_solr/bloodhound_solr/setup.py (added)
+++ bloodhound/branches/bep_0014_solr/bloodhound_solr/setup.py Mon Jun  2 
22:29:12 2014
@@ -0,0 +1,17 @@
+"""setup for embeddable objects plugin"""
+from setuptools import setup
+
+setup(
+    name = 'BloodhoundSolrPlugin',
+    version = '0.1',
+    description = "Apache Solr support for Apache(TM) Bloodhound.",
+    author = "Apache Bloodhound",
+    license = "Apache License v2",
+    url = "http://bloodhound.apache.org/";,
+    packages = ['bhsolr',],
+    package_data = {'bhsolr' : []},
+    entry_points = {'trac.plugins': ['bhsolr.index = bhsolr.index'],},
+    test_suite='bhsorl.tests.test_suite',
+)
+
+


Reply via email to