| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| <html> |
| <head> |
| <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> |
| <meta charset="utf-8" /> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
| <meta name="author" content="dev@gora.apache.org" /> |
| |
| <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> |
| <meta name="Description" content="Apache Gora -- Gora HBase Module" /> |
| <meta name="Keywords" content="Apache Gora NoSQL Framework" /> |
| <meta name="Owner" content="dev@gora.apache.org" /> |
| <meta name="Robots" content="index, follow" /> |
| <meta name="Security" content="Public" /> |
| <meta name="Source" content="wiki template" /> |
| <meta |
| name="DC.Rights" |
| content="Copyright 2010-2024, The Apache Software Foundation" |
| /> |
| <link href="/resources/css/bootstrap.min.css" rel="stylesheet" /> |
| <!-- Fav and touch icons --> |
| <link |
| rel="apple-touch-icon-precomposed" |
| sizes="144x144" |
| href="http://twitter.github.com/bootstrap/assets/ico/apple-touch-icon-144-precomposed.png" |
| /> |
| <link |
| rel="apple-touch-icon-precomposed" |
| sizes="114x114" |
| href="http://twitter.github.com/bootstrap/assets/ico/apple-touch-icon-114-precomposed.png" |
| /> |
| <link |
| rel="apple-touch-icon-precomposed" |
| sizes="72x72" |
| href="http://twitter.github.com/bootstrap/assets/ico/apple-touch-icon-72-precomposed.png" |
| /> |
| <link |
| rel="apple-touch-icon-precomposed" |
| href="http://twitter.github.com/bootstrap/assets/ico/apple-touch-icon-57-precomposed.png" |
| /> |
| <link rel="shortcut icon" href="/resources/img/feather-small.png" /> |
| |
| <title>Apache Gora™ - Gora HBase Module</title> |
| </head> |
| |
| <body style="padding-top: 100px"> |
| <nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top shadow-lg"> |
| <div class="container-fluid"> |
| <a class="navbar-brand" href="/index.html" |
| ><img |
| src="/resources/img/gora-logo.png" |
| alt="Apache Gora" |
| title="Apache Gora" |
| height="50px" |
| /></a> |
| <button |
| class="navbar-toggler" |
| type="button" |
| data-bs-toggle="collapse" |
| data-bs-target="#navbarNav" |
| aria-controls="navbarNav" |
| aria-expanded="false" |
| aria-label="Toggle navigation" |
| > |
| <span class="navbar-toggler-icon"></span> |
| </button> |
| <div class="collapse navbar-collapse" id="navbarNav"> |
| <ul class="navbar-nav me-auto"> |
| <li class="nav-item"> |
| <a class="nav-link" href="/downloads.html">Downloads</a> |
| </li> |
| <li class="nav-item dropdown"> |
| <a |
| class="nav-link dropdown-toggle" |
| href="#" |
| id="navbarDropdown1" |
| role="button" |
| data-bs-toggle="dropdown" |
| aria-expanded="false" |
| >Community</a |
| > |
| <ul class="dropdown-menu" aria-labelledby="navbarDropdown1"> |
| <li> |
| <a |
| class="dropdown-item" |
| href="https://whimsy.apache.org/board/minutes/Gora.html" |
| >Board Reporting</a |
| > |
| </li> |
| <li> |
| <a class="dropdown-item" href="/contribute.html" |
| >Contribute</a |
| > |
| </li> |
| <li> |
| <a class="dropdown-item" href="/mailing_lists.html" |
| >Mailing Lists</a |
| > |
| </li> |
| <li> |
| <a class="dropdown-item" href="/credits.html">People</a> |
| </li> |
| <li> |
| <a class="dropdown-item" href="/related.html" |
| >Related Projects</a |
| > |
| </li> |
| </ul> |
| </li> |
| <li class="nav-item dropdown"> |
| <a |
| class="nav-link dropdown-toggle" |
| href="#" |
| id="navbarDropdown2" |
| role="button" |
| data-bs-toggle="dropdown" |
| aria-expanded="false" |
| >Documentation</a |
| > |
| <ul class="dropdown-menu" aria-labelledby="navbarDropdown2"> |
| <li><a class="dropdown-item" href="/about.html">About</a></li> |
| <li> |
| <a class="dropdown-item" href="/current/index.html" |
| >Current Documentation</a |
| > |
| </li> |
| <li> |
| <a class="dropdown-item" href="/current/api/javadoc.html" |
| >JavaDoc Documentation</a |
| > |
| </li> |
| <li> |
| <a class="dropdown-item" href="/current/tutorial.html" |
| >Gora Tutorial</a |
| > |
| </li> |
| <li> |
| <a |
| class="dropdown-item" |
| href="https://cwiki.apache.org/confluence/display/GORA/" |
| >Gora Wiki</a |
| > |
| </li> |
| </ul> |
| </li> |
| <li class="nav-item dropdown"> |
| <a |
| class="nav-link dropdown-toggle" |
| href="#" |
| id="navbarDropdown3" |
| role="button" |
| data-bs-toggle="dropdown" |
| aria-expanded="false" |
| >Development</a |
| > |
| <ul class="dropdown-menu" aria-labelledby="navbarDropdown3"> |
| <li> |
| <a |
| class="dropdown-item" |
| href="https://issues.apache.org/jira/browse/GORA" |
| >Issue Tracking</a |
| > |
| </li> |
| <li> |
| <a class="dropdown-item" href="/mailing_lists.html" |
| >Mailing Lists</a |
| > |
| </li> |
| <li> |
| <a class="dropdown-item" href="/version_control.html" |
| >Version Control</a |
| > |
| </li> |
| <li> |
| <a class="dropdown-item" href="/roadmap.html">Roadmap</a> |
| </li> |
| </ul> |
| </li> |
| <li class="nav-item dropdown"> |
| <a |
| class="nav-link dropdown-toggle" |
| href="#" |
| id="navbarDropdown4" |
| role="button" |
| data-bs-toggle="dropdown" |
| aria-expanded="false" |
| > |
| <img |
| src="/resources/img/feather-small.png" |
| alt="Apache" |
| title="Apache" |
| /> |
| </a> |
| <ul class="dropdown-menu" aria-labelledby="navbarDropdown4"> |
| <li> |
| <a class="dropdown-item" href="http://www.apache.org" |
| >Apache Home</a |
| > |
| </li> |
| <li> |
| <a |
| class="dropdown-item" |
| href="http://www.apache.org/licenses/" |
| >Apache License</a |
| > |
| </li> |
| <li> |
| <a |
| class="dropdown-item" |
| href="http://www.apache.org/security/" |
| >Security</a |
| > |
| </li> |
| <li> |
| <a |
| class="dropdown-item" |
| href="http://www.apache.org/foundation/sponsorship.html" |
| >Support</a |
| > |
| </li> |
| <li> |
| <a |
| class="dropdown-item" |
| href="http://www.apache.org/foundation/thanks.html" |
| >Thanks</a |
| > |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </div> |
| </div> |
| </nav> |
| |
| <div class="container top-buffer" id="Gora_Gora HBase Module"> |
| <h2 id="overview">Overview<a class="headerlink" href="#overview" title="Permalink">¶</a></h2> |
| <p>This is the main documentation for the gora-solr module. gora-solr |
| module enables <a href="http://lucene.apache.org/solr">Apache Solr</a> backend support for Gora.</p> |
| <div id="toc"><ul><li><a class="toc-href" href="#goraproperties" title="gora.properties">gora.properties</a></li><li><a class="toc-href" href="#gora-solr-mappings" title="Gora Solr mappings">Gora Solr mappings</a></li><li><a class="toc-href" href="#solr-schemaxml" title="Solr Schema.xml">Solr Schema.xml</a></li><li><a class="toc-href" href="#solr-solrconfigxml" title="Solr solrconfig.xml">Solr solrconfig.xml</a></li></ul></div> |
| <h2 id="goraproperties">gora.properties<a class="headerlink" href="#goraproperties" title="Permalink">¶</a></h2> |
| <ul> |
| <li><code>gora.datastore.default=org.apache.gora.solr.store.SolrStore</code> - Implementation of the storage class</li> |
| <li><code>gora.datastore.autocreateschema=true</code> - Create the table if doesn't exist</li> |
| <li><code>gora.solrstore.solr.url=<a href="http://localhost:9876/solr">http://localhost:9876/solr</a></code> - The URL of the Solr server.</li> |
| <li><code>gora.solrstore.solr.config</code> - The <code>solrconfig.xml</code> file to be used.</li> |
| <li><code>gora.solrstore.solr.schema</code> - The <code>schema.xml</code> file to be used.</li> |
| <li><code>gora.solrstore.solr.batchSize</code> - A batch size unit (ArrayList) of SolrDocument's to be used for writing to Solr. A default value of <b>100</b> is used if this value is absent. This value must be of type <b>Integer</b>.</li> |
| <li><code>gora.solrstore.solr.solrjserver</code> - The solrj implementation to use. This has a default value of <b>http</b> for <i><a href="">HttpSolrServer</a></i>. Available options include <b>http</b> (<i><a href="http://lucene.apache.org/solr/4_8_1/solr-solrj/index.html?org/apache/solr/client/solrj/impl/HttpSolrServer.html">HttpSolrServer</a></i>), <b>cloud</b> (<i><a href="http://lucene.apache.org/solr/4_8_1/solr-solrj/index.html?org/apache/solr/client/solrj/impl/CloudSolrServer.html">CloudSolrServer</a></i>), <b>concurrent</b> (<i><a href="http://lucene.apache.org/solr/4_8_1/solr-solrj/index.html?org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrServer.html">ConcurrentUpdateSolrServer</a></i>) and <b>loadbalance</b> (<i><a href="http://lucene.apache.org/solr/4_8_1/solr-solrj/index.html?org/apache/solr/client/solrj/impl/LBHttpSolrServer.html">LBHttpSolrServer</a></i>). This value must be of type <b>String</b>.</li> |
| <li><code>gora.solrstore.solr.commitWithin</code> - A batch commit unit for SolrDocument's used when making (commit) calls to Solr. A default value of 1000 is used if this value is absent. This value must be of type <b>Integer</b>.</li> |
| <li><code>gora.solrstore.solr.resultsSize</code> - The maximum number of results to return when we make a call to <code>org.apache.gora.solr.store.SolrStore#execute(Query)</code>. This value must be of type <b>Integer</b>.</li> |
| </ul> |
| <h2 id="gora-solr-mappings">Gora Solr mappings<a class="headerlink" href="#gora-solr-mappings" title="Permalink">¶</a></h2> |
| <p>Say we wished to map some Employee data and store it into the SolrStore.</p> |
| <pre><code><gora-otd> |
| <class name="org.apache.gora.examples.generated.Employee" keyClass="java.lang.String" table="Employee"> |
| <primarykey column="ssn"/> |
| <field name="name" column="name"/> |
| <field name="dateOfBirth" column="dateOfBirth"/> |
| <field name="salary" column="salary"/> |
| <field name="boss" column="boss"/> |
| <field name="webpage" column="webpage"/> |
| </class> |
| </gora-otd> |
| </code></pre> |
| <p>Here you can see that we require the definition of only one child element within the |
| <code>gora-otd</code> mapping configuration, namely;</p> |
| <p>The class element where we specify of persistent fields which values should map to. This contains;</p> |
| <ol> |
| <li> |
| <p>a parameter containing the Persistent class <b>name</b> e.g. <code>org.apache.gora.examples.generated.Employee</code>,</p> |
| </li> |
| <li> |
| <p>a parameter containing the <b>keyClass</b> e.g. <code>java.lang.String</code> which specifies the keys which map to the field values,</p> |
| </li> |
| <li> |
| <p>a parameter containing the <b>Table name</b> e.g. <code>Employee</code>,</p> |
| </li> |
| <li> |
| <p>finally nested child element(s) mapping fields which are to be persisted into Solr. <b>We must provide a primary key for each object that we wish to persist into Solr.</b> Additional object fields need to be configured such that they receive;</p> |
| <p>a parameter containing the <b>name</b> e.g. (name, dateOfBirth, ssn, salary, boss and webpage respectively),</p> |
| <p>a parameter containing the <b>column family</b> to which they belong e.g. (all info in this case),</p> |
| </li> |
| </ol> |
| <h2 id="solr-schemaxml">Solr Schema.xml<a class="headerlink" href="#solr-schemaxml" title="Permalink">¶</a></h2> |
| <p><code>schema.xml</code> is an essential aspect of defining a storage and query model for your Solr data.</p> |
| <p>The Solr community maintain their own documentation relating to schema.xml, this can be found at <a href="http://wiki.apache.org/solr/SchemaXml">http://wiki.apache.org/solr/SchemaXml</a>.</p> |
| <pre><code><schema name="testexample" version="1.5"> |
| |
| <fields> |
| |
| <!-- Common Fields --> |
| <field name="_version_" type="long" indexed="true" stored="true"/> |
| |
| <!-- Employee Fields --> |
| <field name="ssn" type="string" indexed="true" stored="true" required="true" multiValued="false" /> |
| <field name="name" type="string" indexed="true" stored="true" /> |
| <field name="dateOfBirth" type="long" stored="true" /> |
| <field name="salary" type="int" stored="true" /> |
| <field name="boss" type="binary" stored="true" /> |
| <field name="webpage" type="binary" stored="true" /> |
| |
| </fields> |
| |
| <uniqueKey>ssn</uniqueKey> |
| |
| <types> |
| |
| <fieldType name="string" class="solr.StrField" sortMissingLast="true" /> |
| <fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0"/> |
| <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/> |
| <fieldtype name="binary" class="solr.BinaryField"/> |
| |
| </types> |
| |
| </schema> |
| </code></pre> |
| <h2 id="solr-solrconfigxml">Solr solrconfig.xml<a class="headerlink" href="#solr-solrconfigxml" title="Permalink">¶</a></h2> |
| <p>Similar to <code>schema.xml</code> above, <code>solrconfig.xml</code> documentation is also maintained by the Solr community.</p> |
| <p>Please see an example configuration below but also please refer to <a href="http://wiki.apache.org/solr/SolrConfigXml">http://wiki.apache.org/solr/SolrConfigXml</a>.</p> |
| <pre><code><config> |
| <luceneMatchVersion>LUCENE_40</luceneMatchVersion> |
| <dataDir>${solr.data.dir:}</dataDir> |
| <directoryFactory name="DirectoryFactory" |
| class="${solr.directoryFactory:solr.NRTCachingDirectoryFactory}"/> |
| <codecFactory class="solr.SchemaCodecFactory"/> |
| <schemaFactory class="ClassicIndexSchemaFactory"/> |
| <indexConfig> |
| <lockType>${solr.lock.type:native}</lockType> |
| </indexConfig> |
| |
| <jmx /> |
| |
| <updateHandler class="solr.DirectUpdateHandler2"> |
| <updateLog> |
| <str name="dir">${solr.ulog.dir:}</str> |
| </updateLog> |
| </updateHandler> |
| |
| <query> |
| <maxBooleanClauses>1024</maxBooleanClauses> |
| <filterCache class="solr.FastLRUCache" |
| size="512" |
| initialSize="512" |
| autowarmCount="0"/> |
| <queryResultCache class="solr.LRUCache" |
| size="512" |
| initialSize="512" |
| autowarmCount="0"/> |
| <documentCache class="solr.LRUCache" |
| size="512" |
| initialSize="512" |
| autowarmCount="0"/> |
| <enableLazyFieldLoading>true</enableLazyFieldLoading> |
| <queryResultWindowSize>20</queryResultWindowSize> |
| <queryResultMaxDocsCached>200</queryResultMaxDocsCached> |
| <listener event="newSearcher" class="solr.QuerySenderListener"> |
| <arr name="queries"> |
| </arr> |
| </listener> |
| <listener event="firstSearcher" class="solr.QuerySenderListener"> |
| <arr name="queries"> |
| <lst> |
| <str name="q">static firstSearcher warming in solrconfig.xml</str> |
| </lst> |
| </arr> |
| </listener> |
| <useColdSearcher>false</useColdSearcher> |
| <maxWarmingSearchers>2</maxWarmingSearchers> |
| </query> |
| |
| <requestDispatcher handleSelect="false" > |
| <requestParsers enableRemoteStreaming="true" |
| multipartUploadLimitInKB="2048000" |
| formdataUploadLimitInKB="2048" |
| addHttpRequestToContext="false"/> |
| <httpCaching never304="true" /> |
| </requestDispatcher> |
| |
| <requestHandler name="/select" class="solr.SearchHandler"> |
| <lst name="defaults"> |
| <str name="echoParams">explicit</str> |
| <int name="rows">10</int> |
| <str name="df">ssn</str> |
| </lst> |
| </requestHandler> |
| |
| <requestHandler name="/query" class="solr.SearchHandler"> |
| <lst name="defaults"> |
| <str name="echoParams">explicit</str> |
| <str name="wt">json</str> |
| <str name="indent">true</str> |
| <str name="df">ssn</str> |
| </lst> |
| </requestHandler> |
| |
| <requestHandler name="/get" class="solr.RealTimeGetHandler"> |
| <lst name="defaults"> |
| <str name="omitHeader">true</str> |
| </lst> |
| </requestHandler> |
| |
| <requestHandler name="/update" class="solr.UpdateRequestHandler"> |
| </requestHandler> |
| </config> |
| </code></pre> |
| |
| </div> |
| <!-- /container (main block) --> |
| |
| <hr /> |
| |
| <div class="container"> |
| <footer> |
| <p> |
| Copyright © 2010-2024 The Apache Software Foundation. |
| Licensed under |
| <a href="http://www.apache.org/licenses/LICENSE-2.0" |
| >Apache License 2.0</a |
| >. |
| </p> |
| <p> |
| Apache Gora, Gora, Apache, the Apache feather logo, and the Apache |
| Gora project logo are trademarks of The Apache Software Foundation. |
| </p> |
| </footer> |
| </div> |
| <!-- /container --> |
| |
| <script src="/resources/js/bootstrap.bundle.min.js"></script> |
| <script type="text/javascript"> |
| stLight.options({ |
| publisher: "4059fafd-3891-49f9-8c96-e4100290d8e6", |
| doNotHash: false, |
| doNotCopy: false, |
| hashAddressBar: false, |
| }); |
| </script> |
| <script src="//cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.0.1/build/highlight.min.js"></script> |
| <script> |
| hljs.highlightAll(); |
| </script> |
| </body> |
| </html> |