Skip to content

Commit

Permalink
Update docs
Browse files Browse the repository at this point in the history
  • Loading branch information
ethanhann committed Nov 2, 2019
1 parent d90b4e4 commit 01490a4
Show file tree
Hide file tree
Showing 8 changed files with 271 additions and 43 deletions.
11 changes: 6 additions & 5 deletions docs-src/searching.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ $result = $bookIndex->search('two cities', true);
$result->documents(); // Array of arrays.
```

## Filtering Tag Fields
## Filtering
### Tag Fields

Tag fields can be filtered with the index's tagFilter method.

Expand All @@ -40,7 +41,7 @@ $result = $bookIndex
->search('two cities');
```

## Filtering Numeric Fields
### Numeric Fields

Numeric fields can be filtered with the index's numericFilter method.

Expand All @@ -50,7 +51,7 @@ $result = $bookIndex
->search('two cities');
```

## Filtering Geo Fields
### Geo Fields

Numeric fields can be filtered with the index's geoFilter method.

Expand All @@ -69,9 +70,9 @@ $result = $bookIndex
->sortBy('price')
->search('two cities');
```



## Number of Search Results
## Number of Results

The number of documents can be retrieved after performing a search.

Expand Down
100 changes: 95 additions & 5 deletions docs/indexing/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -337,12 +337,46 @@
</li>

<li class="md-nav__item">
<a href="#indexing-from-a-hash" title="Indexing from a Hash" class="md-nav__link">
Indexing from a Hash
<a href="#indexing-from-a-hash" title="Indexing From a Hash" class="md-nav__link">
Indexing From a Hash
</a>

</li>

<li class="md-nav__item">
<a href="#aliasing" title="Aliasing" class="md-nav__link">
Aliasing
</a>

<nav class="md-nav">
<ul class="md-nav__list">

<li class="md-nav__item">
<a href="#adding-an-alias" title="Adding an Alias" class="md-nav__link">
Adding an Alias
</a>

</li>

<li class="md-nav__item">
<a href="#updating-an-alias" title="Updating an Alias" class="md-nav__link">
Updating an Alias
</a>

</li>

<li class="md-nav__item">
<a href="#deleting-an-alias" title="Deleting an Alias" class="md-nav__link">
Deleting an Alias
</a>

</li>

</ul>
</nav>

</li>




Expand Down Expand Up @@ -468,11 +502,45 @@
</li>

<li class="md-nav__item">
<a href="#indexing-from-a-hash" title="Indexing from a Hash" class="md-nav__link">
Indexing from a Hash
<a href="#indexing-from-a-hash" title="Indexing From a Hash" class="md-nav__link">
Indexing From a Hash
</a>

</li>

<li class="md-nav__item">
<a href="#aliasing" title="Aliasing" class="md-nav__link">
Aliasing
</a>

<nav class="md-nav">
<ul class="md-nav__list">

<li class="md-nav__item">
<a href="#adding-an-alias" title="Adding an Alias" class="md-nav__link">
Adding an Alias
</a>

</li>

<li class="md-nav__item">
<a href="#updating-an-alias" title="Updating an Alias" class="md-nav__link">
Updating an Alias
</a>

</li>

<li class="md-nav__item">
<a href="#deleting-an-alias" title="Deleting an Alias" class="md-nav__link">
Deleting an Alias
</a>

</li>

</ul>
</nav>

</li>



Expand Down Expand Up @@ -640,7 +708,7 @@ <h2 id="batch-indexing">Batch Indexing<a class="headerlink" href="#batch-indexin
<span class="nv">$bookIndex</span><span class="o">-&gt;</span><span class="na">addMany</span><span class="p">(</span><span class="nv">$documents</span><span class="p">,</span> <span class="k">true</span><span class="p">);</span>
</pre></div>

<h2 id="indexing-from-a-hash">Indexing from a Hash<a class="headerlink" href="#indexing-from-a-hash" title="Permanent link">&para;</a></h2>
<h2 id="indexing-from-a-hash">Indexing From a Hash<a class="headerlink" href="#indexing-from-a-hash" title="Permanent link">&para;</a></h2>
<p>Redis hashes are key/value pairs referenced by a key.
It is possible to index an existing hash with the <strong>addHash</strong> method.
The document's ID has to be the same as the hash's key.
Expand All @@ -654,6 +722,28 @@ <h2 id="indexing-from-a-hash">Indexing from a Hash<a class="headerlink" href="#i
<div class="codehilite"><pre><span></span><span class="x">$document = $bookIndex-&gt;makeDocument(&#39;foo&#39;);</span>
<span class="x">$bookIndex-&gt;replaceHash($document);</span>
</pre></div>

<h2 id="aliasing">Aliasing<a class="headerlink" href="#aliasing" title="Permanent link">&para;</a></h2>
<p>Indexes can be aliased.</p>
<p>Note that an exception will be thrown if any alias method is called before an index's <a href="/#create-the-schema">schema</a> is created. </p>
<h3 id="adding-an-alias">Adding an Alias<a class="headerlink" href="#adding-an-alias" title="Permanent link">&para;</a></h3>
<p>An alias can be added for an index like this:</p>
<div class="codehilite"><pre><span></span><span class="nv">$index</span><span class="o">-&gt;</span><span class="na">addAlias</span><span class="p">(</span><span class="s1">&#39;foo&#39;</span><span class="p">);</span>
</pre></div>

<h3 id="updating-an-alias">Updating an Alias<a class="headerlink" href="#updating-an-alias" title="Permanent link">&para;</a></h3>
<p>Assuming an alias has already been added to an index, like this:</p>
<div class="codehilite"><pre><span></span><span class="nv">$oldIndex</span><span class="o">-&gt;</span><span class="na">addAlias</span><span class="p">(</span><span class="s1">&#39;foo&#39;</span><span class="p">);</span>
</pre></div>

<p>...it can be reassigned to a different index like this:</p>
<div class="codehilite"><pre><span></span><span class="nv">$newIndex</span><span class="o">-&gt;</span><span class="na">updateAlias</span><span class="p">(</span><span class="s1">&#39;foo&#39;</span><span class="p">);</span>
</pre></div>

<h3 id="deleting-an-alias">Deleting an Alias<a class="headerlink" href="#deleting-an-alias" title="Permanent link">&para;</a></h3>
<p>An alias can be deleted like this:</p>
<div class="codehilite"><pre><span></span><span class="nv">$index</span><span class="o">-&gt;</span><span class="na">deleteAlias</span><span class="p">(</span><span class="s1">&#39;foo&#39;</span><span class="p">);</span>
</pre></div>



Expand Down
86 changes: 85 additions & 1 deletion docs/laravel-support/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -386,13 +386,27 @@
Configure the Scout Driver
</a>

</li>

<li class="md-nav__item">
<a href="#define-searchable-schema" title="Define Searchable Schema" class="md-nav__link">
Define Searchable Schema
</a>

</li>

<li class="md-nav__item">
<a href="#import-a-model" title="Import a Model" class="md-nav__link">
Import a Model
</a>

</li>

<li class="md-nav__item">
<a href="#query-filters" title="Query Filters" class="md-nav__link">
Query Filters
</a>

</li>

</ul>
Expand Down Expand Up @@ -477,13 +491,27 @@
Configure the Scout Driver
</a>

</li>

<li class="md-nav__item">
<a href="#define-searchable-schema" title="Define Searchable Schema" class="md-nav__link">
Define Searchable Schema
</a>

</li>

<li class="md-nav__item">
<a href="#import-a-model" title="Import a Model" class="md-nav__link">
Import a Model
</a>

</li>

<li class="md-nav__item">
<a href="#query-filters" title="Query Filters" class="md-nav__link">
Query Filters
</a>

</li>

</ul>
Expand Down Expand Up @@ -535,6 +563,54 @@ <h3 id="configure-the-scout-driver">Configure the Scout Driver<a class="headerli
<div class="codehilite"><pre><span></span><span class="s1">&#39;driver&#39;</span> <span class="o">=&gt;</span> <span class="nx">env</span><span class="p">(</span><span class="s1">&#39;SCOUT_DRIVER&#39;</span><span class="p">,</span> <span class="s1">&#39;ehann-redisearch&#39;</span><span class="p">),</span>
</pre></div>

<h3 id="define-searchable-schema">Define Searchable Schema<a class="headerlink" href="#define-searchable-schema" title="Permanent link">&para;</a></h3>
<p>Define the field types that will be used on indexing</p>
<div class="codehilite"><pre><span></span><span class="cp">&lt;?php</span>

<span class="k">namespace</span> <span class="nx">App</span><span class="p">;</span>

<span class="k">use</span> <span class="nx">Laravel\Scout\Searchable</span><span class="p">;</span>
<span class="o">...</span>
<span class="k">use</span> <span class="nx">Ehann\RediSearch\Fields\TextField</span><span class="p">;</span>
<span class="k">use</span> <span class="nx">Ehann\RediSearch\Fields\GeoField</span><span class="p">;</span>
<span class="k">use</span> <span class="nx">Ehann\RediSearch\Fields\NumericField</span><span class="p">;</span>
<span class="k">use</span> <span class="nx">Ehann\RediSearch\Fields\TagField</span><span class="p">;</span>
<span class="k">use</span> <span class="nx">Ehann\RediSearch\Fields\GeoLocation</span><span class="p">;</span>
<span class="o">...</span>

<span class="k">class</span> <span class="nc">User</span> <span class="k">extends</span> <span class="nx">Model</span> <span class="p">{</span>
<span class="k">use</span> <span class="nx">Searchable</span><span class="p">;</span>

<span class="k">public</span> <span class="k">function</span> <span class="nf">searchableAs</span><span class="p">()</span>
<span class="p">{</span>
<span class="k">return</span> <span class="s2">&quot;user_index&quot;</span><span class="p">;</span>
<span class="p">}</span>

<span class="k">public</span> <span class="k">function</span> <span class="nf">toSearchableArray</span><span class="p">()</span>
<span class="p">{</span>
<span class="k">return</span> <span class="p">[</span>
<span class="s2">&quot;name&quot;</span> <span class="o">=&gt;</span> <span class="nv">$this</span><span class="o">-&gt;</span><span class="na">name</span><span class="p">,</span>
<span class="s2">&quot;username&quot;</span> <span class="o">=&gt;</span> <span class="nv">$this</span><span class="o">-&gt;</span><span class="na">username</span><span class="p">,</span>
<span class="s2">&quot;location&quot;</span> <span class="o">=&gt;</span> <span class="k">new</span> <span class="nx">GeoLocation</span><span class="p">(</span>
<span class="nv">$this</span><span class="o">-&gt;</span><span class="na">longitude</span><span class="p">,</span>
<span class="nv">$this</span><span class="o">-&gt;</span><span class="na">latitude</span>
<span class="p">)</span>
<span class="s2">&quot;age&quot;</span> <span class="o">=&gt;</span> <span class="nv">$this</span><span class="o">-&gt;</span><span class="na">age</span><span class="p">,</span>
<span class="p">];</span>
<span class="p">}</span>

<span class="k">public</span> <span class="k">function</span> <span class="nf">searchableSchema</span><span class="p">()</span>
<span class="p">{</span>
<span class="k">return</span> <span class="p">[</span>
<span class="s2">&quot;name&quot;</span> <span class="o">=&gt;</span> <span class="nx">TextField</span><span class="o">::</span><span class="na">class</span><span class="p">,</span>
<span class="s2">&quot;username&quot;</span> <span class="o">=&gt;</span> <span class="nx">TextField</span><span class="o">::</span><span class="na">class</span><span class="p">,</span>
<span class="s2">&quot;location&quot;</span> <span class="o">=&gt;</span> <span class="nx">GeoField</span><span class="o">::</span><span class="na">class</span><span class="p">,</span>
<span class="s2">&quot;age&quot;</span> <span class="o">=&gt;</span> <span class="nx">NumericField</span><span class="o">::</span><span class="na">class</span>
<span class="p">];</span>
<span class="p">}</span>
<span class="p">}</span>
</pre></div>

<h3 id="import-a-model">Import a Model<a class="headerlink" href="#import-a-model" title="Permanent link">&para;</a></h3>
<p>Import a "Product" model that is <a href="https://laravel.com/docs/5.6/scout#configuration">configured to be searchable</a>:</p>
<div class="codehilite"><pre><span></span>artisan ehann:redisearch:import App<span class="se">\\</span>Product
Expand All @@ -548,8 +624,16 @@ <h3 id="import-a-model">Import a Model<a class="headerlink" href="#import-a-mode
<div class="codehilite"><pre><span></span>artisan ehann:redisearch:import App<span class="se">\\</span>Product --no-id
</pre></div>

<h3 id="query-filters">Query Filters<a class="headerlink" href="#query-filters" title="Permanent link">&para;</a></h3>
<p>How To Query Filters? <a href="http://www.ethanhann.com/redisearch-php/searching/#filtering-tag-fields">Filtering Tag Fields</a></p>
<div class="codehilite"><pre><span></span><span class="x">App\User::search(&quot;Search Query&quot;, function($index){</span>
<span class="x"> return $filter-&gt;geoFilter(&quot;location&quot;, 5.56475, 5.75516, 100)</span>
<span class="x"> -&gt;numericFilter(&#39;age&#39;, 18, 32)</span>
<span class="x">})-&gt;get()</span>
</pre></div>

<h2 id="what-now">What now?<a class="headerlink" href="#what-now" title="Permanent link">&para;</a></h2>
<p>See the <a href="https://laravel.com/docs/5.6/scout">Laravel Scout</a> documentation for additional information. </p>
<p>See the <a href="https://laravel.com/docs/5.6/scout">Laravel Scout</a> documentation for additional information.</p>



Expand Down
2 changes: 1 addition & 1 deletion docs/search/search_index.json

Large diffs are not rendered by default.

Loading

0 comments on commit 01490a4

Please sign in to comment.