You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by bu...@apache.org on 2015/08/19 10:46:52 UTC

svn commit: r962308 - in /websites/staging/jena/trunk/content: ./ documentation/query/text-query.html

Author: buildbot
Date: Wed Aug 19 08:46:52 2015
New Revision: 962308

Log:
Staging update by buildbot for jena

Modified:
    websites/staging/jena/trunk/content/   (props changed)
    websites/staging/jena/trunk/content/documentation/query/text-query.html

Propchange: websites/staging/jena/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Wed Aug 19 08:46:52 2015
@@ -1 +1 @@
-1696290
+1696533

Modified: websites/staging/jena/trunk/content/documentation/query/text-query.html
==============================================================================
--- websites/staging/jena/trunk/content/documentation/query/text-query.html (original)
+++ websites/staging/jena/trunk/content/documentation/query/text-query.html Wed Aug 19 08:46:52 2015
@@ -190,6 +190,7 @@ the actual label.  More details are give
 <li><a href="#configuration-by-code">Configuration by Code</a></li>
 <li><a href="#graph-specific-indexing">Graph-specific Indexing</a></li>
 <li><a href="#linguistic-support-with-lucene-index">Linguistic Support with Lucene Index</a></li>
+<li><a href="#storing-literal-values">Storing Literal Values</a></li>
 </ul>
 </li>
 <li><a href="#working-with-fuseki">Working with Fuseki</a></li>
@@ -238,15 +239,16 @@ conveniently written:</p>
 
 <p>This is different to LARQ v1.</p>
 <p>The following forms are all legal:</p>
-<div class="codehilite"><pre>?<span class="n">s</span> <span class="n">text</span><span class="p">:</span><span class="n">query</span> <span class="s">&#39;word&#39;</span>              # <span class="n">query</span>
-?<span class="n">s</span> <span class="n">text</span><span class="p">:</span><span class="n">query</span> <span class="p">(</span><span class="n">rdfs</span><span class="p">:</span><span class="n">label</span> <span class="s">&#39;word&#39;</span><span class="p">)</span> # <span class="n">query</span> <span class="n">specific</span> <span class="n">property</span> <span class="k">if</span> <span class="n">multiple</span>
-?<span class="n">s</span> <span class="n">text</span><span class="p">:</span><span class="n">query</span> <span class="p">(</span><span class="s">&#39;word&#39;</span> 10<span class="p">)</span>         # <span class="n">with</span> <span class="n">limit</span> <span class="n">on</span> <span class="n">results</span>
-<span class="p">(</span>?<span class="n">s</span> ?<span class="n">score</span><span class="p">)</span> <span class="n">text</span><span class="p">:</span><span class="n">query</span> <span class="s">&#39;word&#39;</span>     # <span class="n">query</span> <span class="n">capturing</span> <span class="n">also</span> <span class="n">the</span> <span class="n">score</span>
+<div class="codehilite"><pre>?<span class="n">s</span> <span class="n">text</span><span class="p">:</span><span class="n">query</span> <span class="s">&#39;word&#39;</span>                   # <span class="n">query</span>
+?<span class="n">s</span> <span class="n">text</span><span class="p">:</span><span class="n">query</span> <span class="p">(</span><span class="n">rdfs</span><span class="p">:</span><span class="n">label</span> <span class="s">&#39;word&#39;</span><span class="p">)</span>      # <span class="n">query</span> <span class="n">specific</span> <span class="n">property</span> <span class="k">if</span> <span class="n">multiple</span>
+?<span class="n">s</span> <span class="n">text</span><span class="p">:</span><span class="n">query</span> <span class="p">(</span><span class="s">&#39;word&#39;</span> 10<span class="p">)</span>              # <span class="n">with</span> <span class="n">limit</span> <span class="n">on</span> <span class="n">results</span>
+<span class="p">(</span>?<span class="n">s</span> ?<span class="n">score</span><span class="p">)</span> <span class="n">text</span><span class="p">:</span><span class="n">query</span> <span class="s">&#39;word&#39;</span>          # <span class="n">query</span> <span class="n">capturing</span> <span class="n">also</span> <span class="n">the</span> <span class="n">score</span>
+<span class="p">(</span>?<span class="n">s</span> ?<span class="n">score</span> ?<span class="n">literal</span><span class="p">)</span> <span class="n">text</span><span class="p">:</span><span class="n">query</span> <span class="s">&#39;word&#39;</span> # <span class="p">...</span> <span class="n">and</span> <span class="n">original</span> <span class="n">literal</span> <span class="n">value</span>
 </pre></div>
 
 
 <p>The most general form is:</p>
-<div class="codehilite"><pre> <span class="p">(</span>?<span class="n">s</span> ?<span class="n">score</span><span class="p">)</span> <span class="n">text</span><span class="p">:</span><span class="n">query</span> <span class="p">(</span><span class="n">property</span> <span class="s">&#39;query string&#39;</span> <span class="s">&#39;limit&#39;</span><span class="p">)</span>
+<div class="codehilite"><pre> <span class="p">(</span>?<span class="n">s</span> ?<span class="n">score</span> ?<span class="n">literal</span><span class="p">)</span> <span class="n">text</span><span class="p">:</span><span class="n">query</span> <span class="p">(</span><span class="n">property</span> <span class="s">&#39;query string&#39;</span> <span class="s">&#39;limit&#39;</span><span class="p">)</span>
 </pre></div>
 
 
@@ -599,6 +601,36 @@ the storage of langField properties.</p>
 (institution, institutional,...) in French and in English.</p>
 <p><strong>Note</strong>: If the <code>text:langField</code> property is not set, the "lang" field will be
 used anyway by default, because multilingual index cannot work without it.</p>
+<h3 id="storing-literal-values">Storing Literal Values<a class="headerlink" href="#storing-literal-values" title="Permanent link">&para;</a></h3>
+<p>New in Jena 3.0.0.</p>
+<p>It is possible to configure the text index to store enough information in the
+text index to be able to access the original indexed literal values at query time.
+This is controlled by two configuration options. First, the <code>text:storeValues</code> property
+must be set to <code>true</code> for the text index:</p>
+<div class="codehilite"><pre><span class="o">&lt;</span>#<span class="n">indexLucene</span><span class="o">&gt;</span> <span class="n">a</span> <span class="n">text</span><span class="p">:</span><span class="n">TextIndexLucene</span> <span class="p">;</span>
+    <span class="n">text</span><span class="p">:</span><span class="n">directory</span> &quot;<span class="n">mem</span>&quot; <span class="p">;</span>
+    <span class="n">text</span><span class="p">:</span><span class="n">storeValues</span> <span class="n">true</span><span class="p">;</span>     
+    <span class="p">.</span>
+</pre></div>
+
+
+<p>Or using Java code, used the <code>setValueStored</code> method of <code>TextIndexConfig</code>:</p>
+<div class="codehilite"><pre>    <span class="n">TextIndexConfig</span> <span class="n">config</span> <span class="p">=</span> <span class="n">new</span> <span class="n">TextIndexConfig</span><span class="p">(</span><span class="n">def</span><span class="p">);</span>
+    <span class="n">config</span><span class="p">.</span><span class="n">setValueStored</span><span class="p">(</span><span class="n">true</span><span class="p">);</span>
+</pre></div>
+
+
+<p>Additionally, setting the <code>langField</code> configuration option is recommended. See 
+<a href="#linguistic-support-with-lucene-index">Linguistic Support with Lucene Index</a> 
+for details. Without the <code>langField</code> setting, the stored literals will not have 
+language tag or datatype information.</p>
+<p>At query time, the stored literals can be accessed by using a 3-element list
+of variables as the subject of the <code>text:query</code> property function. The literal
+value will be bound to the third variable:</p>
+<div class="codehilite"><pre><span class="p">(</span>?<span class="n">s</span> ?<span class="n">score</span> ?<span class="n">literal</span><span class="p">)</span> <span class="n">text</span><span class="p">:</span><span class="n">query</span> <span class="s">&#39;word&#39;</span>
+</pre></div>
+
+
 <h2 id="working-with-fuseki">Working with Fuseki<a class="headerlink" href="#working-with-fuseki" title="Permanent link">&para;</a></h2>
 <p>The Fuseki configuration simply points to the text dataset as the
 <code>fuseki:dataset</code> of the service.</p>