Skip to content

Commit

Permalink
align APIs for async and sync versions of search results
Browse files Browse the repository at this point in the history
  • Loading branch information
jillesvangurp committed Jul 2, 2020
1 parent 20f70cf commit c520d0c
Show file tree
Hide file tree
Showing 16 changed files with 93 additions and 52 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ runBlocking {
dsl {
TermQuery("name.keyword", "thing #666")
}
}.hits().collect {
}.mappedHits.collect {
// collect is part of the kotlin Flow API
// this is one of the few parts where the API is different
println("we've found an evil thing with: ${it.amount}")
Expand Down
Binary file modified book.epub
Binary file not shown.
10 changes: 6 additions & 4 deletions docs/es-kotlin-wrapper-client/index-outline.html
Original file line number Diff line number Diff line change
Expand Up @@ -116,9 +116,10 @@
</HEAD>
<BODY>
<a href="docs/es-kotlin-wrapper-client/index"><a href="io.inbot.eskotlinwrapper/-async-search-results/-init-.html"><span class="identifier">AsyncSearchResults</span><span class="symbol">(</span><span class="identifier" id="io.inbot.eskotlinwrapper.AsyncSearchResults$<init>(org.elasticsearch.client.RestHighLevelClient, io.inbot.eskotlinwrapper.ModelReaderAndWriter((io.inbot.eskotlinwrapper.AsyncSearchResults.T)), kotlin.Long, org.elasticsearch.action.search.SearchResponse, org.elasticsearch.client.RequestOptions)/client">client</span><span class="symbol">:</span>&nbsp;<span class="identifier">RestHighLevelClient</span><span class="symbol">, </span><span class="identifier" id="io.inbot.eskotlinwrapper.AsyncSearchResults$<init>(org.elasticsearch.client.RestHighLevelClient, io.inbot.eskotlinwrapper.ModelReaderAndWriter((io.inbot.eskotlinwrapper.AsyncSearchResults.T)), kotlin.Long, org.elasticsearch.action.search.SearchResponse, org.elasticsearch.client.RequestOptions)/modelReaderAndWriter">modelReaderAndWriter</span><span class="symbol">:</span>&nbsp;<a href="io.inbot.eskotlinwrapper/-model-reader-and-writer/index.html"><span class="identifier">ModelReaderAndWriter</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="io.inbot.eskotlinwrapper.AsyncSearchResults$<init>(org.elasticsearch.client.RestHighLevelClient, io.inbot.eskotlinwrapper.ModelReaderAndWriter((io.inbot.eskotlinwrapper.AsyncSearchResults.T)), kotlin.Long, org.elasticsearch.action.search.SearchResponse, org.elasticsearch.client.RequestOptions)/scrollTtlInMinutes">scrollTtlInMinutes</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html"><span class="identifier">Long</span></a><span class="symbol">, </span><span class="identifier" id="io.inbot.eskotlinwrapper.AsyncSearchResults$<init>(org.elasticsearch.client.RestHighLevelClient, io.inbot.eskotlinwrapper.ModelReaderAndWriter((io.inbot.eskotlinwrapper.AsyncSearchResults.T)), kotlin.Long, org.elasticsearch.action.search.SearchResponse, org.elasticsearch.client.RequestOptions)/firstResponse">firstResponse</span><span class="symbol">:</span>&nbsp;<span class="identifier">SearchResponse</span><span class="symbol">, </span><span class="identifier" id="io.inbot.eskotlinwrapper.AsyncSearchResults$<init>(org.elasticsearch.client.RestHighLevelClient, io.inbot.eskotlinwrapper.ModelReaderAndWriter((io.inbot.eskotlinwrapper.AsyncSearchResults.T)), kotlin.Long, org.elasticsearch.action.search.SearchResponse, org.elasticsearch.client.RequestOptions)/defaultRequestOptions">defaultRequestOptions</span><span class="symbol">:</span>&nbsp;<span class="identifier">RequestOptions</span>&nbsp;<span class="symbol">=</span>&nbsp;RequestOptions.DEFAULT<span class="symbol">)</span></a></a><br/>
<a href="docs/es-kotlin-wrapper-client/index"><a href="io.inbot.eskotlinwrapper/-async-search-results/hits.html"><span class="keyword">fun </span><span class="identifier">hits</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Flow</span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/es-kotlin-wrapper-client/index"><a href="io.inbot.eskotlinwrapper/-async-search-results/raw-hits.html"><span class="keyword">fun </span><span class="identifier">rawHits</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Flow</span><span class="symbol">&lt;</span><span class="identifier">SearchHit</span><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/es-kotlin-wrapper-client/index"><a href="io.inbot.eskotlinwrapper/-async-search-results/hits.html"><span class="keyword">val </span><span class="identifier">hits</span><span class="symbol">: </span><span class="identifier">Flow</span><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-pair/index.html"><span class="identifier">Pair</span></a><span class="symbol">&lt;</span><span class="identifier">SearchHit</span><span class="symbol">,</span>&nbsp;<span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/es-kotlin-wrapper-client/index"><a href="io.inbot.eskotlinwrapper/-async-search-results/mapped-hits.html"><span class="keyword">val </span><span class="identifier">mappedHits</span><span class="symbol">: </span><span class="identifier">Flow</span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/es-kotlin-wrapper-client/index"><a href="io.inbot.eskotlinwrapper/-async-search-results/raw-responses.html"><span class="keyword">fun </span><span class="identifier">rawResponses</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Flow</span><span class="symbol">&lt;</span><span class="identifier">SearchResponse</span><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/es-kotlin-wrapper-client/index"><a href="io.inbot.eskotlinwrapper/-async-search-results/search-hits.html"><span class="keyword">val </span><span class="identifier">searchHits</span><span class="symbol">: </span><span class="identifier">Flow</span><span class="symbol">&lt;</span><span class="identifier">SearchHit</span><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/es-kotlin-wrapper-client/index"><a href="io.inbot.eskotlinwrapper/-async-search-results/total.html"><span class="keyword">val </span><span class="identifier">total</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html"><span class="identifier">Long</span></a></a></a><br/>
<a href="docs/es-kotlin-wrapper-client/index"><a href="io.inbot.eskotlinwrapper/-async-search-results/total-hits.html"><span class="keyword">val </span><span class="identifier">totalHits</span><span class="symbol">: </span><span class="identifier">TotalHits</span><span class="symbol">?</span></a></a><br/>
<a href="docs/es-kotlin-wrapper-client/index"><a href="io.inbot.eskotlinwrapper/-async-search-results/total-relation.html"><span class="keyword">val </span><span class="identifier">totalRelation</span><span class="symbol">: </span><span class="identifier">Relation</span></a></a><br/>
Expand Down Expand Up @@ -1162,9 +1163,10 @@
</HEAD>
<BODY>
<a href="docs/es-kotlin-wrapper-client/index"><a href="io.inbot.eskotlinwrapper/-async-search-results/-init-.html"><span class="identifier">AsyncSearchResults</span><span class="symbol">(</span><span class="identifier" id="io.inbot.eskotlinwrapper.AsyncSearchResults$<init>(org.elasticsearch.client.RestHighLevelClient, io.inbot.eskotlinwrapper.ModelReaderAndWriter((io.inbot.eskotlinwrapper.AsyncSearchResults.T)), kotlin.Long, org.elasticsearch.action.search.SearchResponse, org.elasticsearch.client.RequestOptions)/client">client</span><span class="symbol">:</span>&nbsp;<span class="identifier">RestHighLevelClient</span><span class="symbol">, </span><span class="identifier" id="io.inbot.eskotlinwrapper.AsyncSearchResults$<init>(org.elasticsearch.client.RestHighLevelClient, io.inbot.eskotlinwrapper.ModelReaderAndWriter((io.inbot.eskotlinwrapper.AsyncSearchResults.T)), kotlin.Long, org.elasticsearch.action.search.SearchResponse, org.elasticsearch.client.RequestOptions)/modelReaderAndWriter">modelReaderAndWriter</span><span class="symbol">:</span>&nbsp;<a href="io.inbot.eskotlinwrapper/-model-reader-and-writer/index.html"><span class="identifier">ModelReaderAndWriter</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="io.inbot.eskotlinwrapper.AsyncSearchResults$<init>(org.elasticsearch.client.RestHighLevelClient, io.inbot.eskotlinwrapper.ModelReaderAndWriter((io.inbot.eskotlinwrapper.AsyncSearchResults.T)), kotlin.Long, org.elasticsearch.action.search.SearchResponse, org.elasticsearch.client.RequestOptions)/scrollTtlInMinutes">scrollTtlInMinutes</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html"><span class="identifier">Long</span></a><span class="symbol">, </span><span class="identifier" id="io.inbot.eskotlinwrapper.AsyncSearchResults$<init>(org.elasticsearch.client.RestHighLevelClient, io.inbot.eskotlinwrapper.ModelReaderAndWriter((io.inbot.eskotlinwrapper.AsyncSearchResults.T)), kotlin.Long, org.elasticsearch.action.search.SearchResponse, org.elasticsearch.client.RequestOptions)/firstResponse">firstResponse</span><span class="symbol">:</span>&nbsp;<span class="identifier">SearchResponse</span><span class="symbol">, </span><span class="identifier" id="io.inbot.eskotlinwrapper.AsyncSearchResults$<init>(org.elasticsearch.client.RestHighLevelClient, io.inbot.eskotlinwrapper.ModelReaderAndWriter((io.inbot.eskotlinwrapper.AsyncSearchResults.T)), kotlin.Long, org.elasticsearch.action.search.SearchResponse, org.elasticsearch.client.RequestOptions)/defaultRequestOptions">defaultRequestOptions</span><span class="symbol">:</span>&nbsp;<span class="identifier">RequestOptions</span>&nbsp;<span class="symbol">=</span>&nbsp;RequestOptions.DEFAULT<span class="symbol">)</span></a></a><br/>
<a href="docs/es-kotlin-wrapper-client/index"><a href="io.inbot.eskotlinwrapper/-async-search-results/hits.html"><span class="keyword">fun </span><span class="identifier">hits</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Flow</span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/es-kotlin-wrapper-client/index"><a href="io.inbot.eskotlinwrapper/-async-search-results/raw-hits.html"><span class="keyword">fun </span><span class="identifier">rawHits</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Flow</span><span class="symbol">&lt;</span><span class="identifier">SearchHit</span><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/es-kotlin-wrapper-client/index"><a href="io.inbot.eskotlinwrapper/-async-search-results/hits.html"><span class="keyword">val </span><span class="identifier">hits</span><span class="symbol">: </span><span class="identifier">Flow</span><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-pair/index.html"><span class="identifier">Pair</span></a><span class="symbol">&lt;</span><span class="identifier">SearchHit</span><span class="symbol">,</span>&nbsp;<span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/es-kotlin-wrapper-client/index"><a href="io.inbot.eskotlinwrapper/-async-search-results/mapped-hits.html"><span class="keyword">val </span><span class="identifier">mappedHits</span><span class="symbol">: </span><span class="identifier">Flow</span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/es-kotlin-wrapper-client/index"><a href="io.inbot.eskotlinwrapper/-async-search-results/raw-responses.html"><span class="keyword">fun </span><span class="identifier">rawResponses</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Flow</span><span class="symbol">&lt;</span><span class="identifier">SearchResponse</span><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/es-kotlin-wrapper-client/index"><a href="io.inbot.eskotlinwrapper/-async-search-results/search-hits.html"><span class="keyword">val </span><span class="identifier">searchHits</span><span class="symbol">: </span><span class="identifier">Flow</span><span class="symbol">&lt;</span><span class="identifier">SearchHit</span><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/es-kotlin-wrapper-client/index"><a href="io.inbot.eskotlinwrapper/-async-search-results/total.html"><span class="keyword">val </span><span class="identifier">total</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html"><span class="identifier">Long</span></a></a></a><br/>
<a href="docs/es-kotlin-wrapper-client/index"><a href="io.inbot.eskotlinwrapper/-async-search-results/total-hits.html"><span class="keyword">val </span><span class="identifier">totalHits</span><span class="symbol">: </span><span class="identifier">TotalHits</span><span class="symbol">?</span></a></a><br/>
<a href="docs/es-kotlin-wrapper-client/index"><a href="io.inbot.eskotlinwrapper/-async-search-results/total-relation.html"><span class="keyword">val </span><span class="identifier">totalRelation</span><span class="symbol">: </span><span class="identifier">Relation</span></a></a><br/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@
<a href="../../index.html">es-kotlin-wrapper-client</a>&nbsp;/&nbsp;<a href="../index.html">io.inbot.eskotlinwrapper</a>&nbsp;/&nbsp;<a href="index.html">AsyncSearchResults</a>&nbsp;/&nbsp;<a href="./hits.html">hits</a><br/>
<br/>
<h1>hits</h1>
<a name="io.inbot.eskotlinwrapper.AsyncSearchResults$hits()"></a>
<code><span class="keyword">fun </span><span class="identifier">hits</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Flow</span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code>
<a name="io.inbot.eskotlinwrapper.AsyncSearchResults$hits"></a>
<code><span class="keyword">val </span><span class="identifier">hits</span><span class="symbol">: </span><span class="identifier">Flow</span><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-pair/index.html"><span class="identifier">Pair</span></a><span class="symbol">&lt;</span><span class="identifier">SearchHit</span><span class="symbol">,</span>&nbsp;<span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code>
<p>A Flow of pairs of <code>SearchHit</code>s and the deserialized <code>T</code> as a <code>Flow</code>. Use this if you need both.</p>
</BODY>
</HTML>
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,30 @@ <h3>Properties</h3>
<tbody>
<tr>
<td>
<h4><a href="hits.html">hits</a></h4>
</td>
<td>
<p>A Flow of pairs of <code>SearchHit</code>s and the deserialized <code>T</code> as a <code>Flow</code>. Use this if you need both.</p>
<code><span class="keyword">val </span><span class="identifier">hits</span><span class="symbol">: </span><span class="identifier">Flow</span><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-pair/index.html"><span class="identifier">Pair</span></a><span class="symbol">&lt;</span><span class="identifier">SearchHit</span><span class="symbol">,</span>&nbsp;<span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">&gt;</span></code></td>
</tr>
<tr>
<td>
<h4><a href="mapped-hits.html">mappedHits</a></h4>
</td>
<td>
<p>A <code>Flow</code> of <code>T</code>. Use this if you don't need the underlying <code>SearchHit</code>.</p>
<code><span class="keyword">val </span><span class="identifier">mappedHits</span><span class="symbol">: </span><span class="identifier">Flow</span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code></td>
</tr>
<tr>
<td>
<h4><a href="search-hits.html">searchHits</a></h4>
</td>
<td>
<p>Returns just the <code>SearchHit</code>s as a <code>Flow</code>. This does not attempt to deserialize anything.</p>
<code><span class="keyword">val </span><span class="identifier">searchHits</span><span class="symbol">: </span><span class="identifier">Flow</span><span class="symbol">&lt;</span><span class="identifier">SearchHit</span><span class="symbol">&gt;</span></code></td>
</tr>
<tr>
<td>
<h4><a href="total.html">total</a></h4>
</td>
<td>
Expand All @@ -52,20 +76,6 @@ <h3>Functions</h3>
<tbody>
<tr>
<td>
<h4><a href="hits.html">hits</a></h4>
</td>
<td>
<code><span class="keyword">fun </span><span class="identifier">hits</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Flow</span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code></td>
</tr>
<tr>
<td>
<h4><a href="raw-hits.html">rawHits</a></h4>
</td>
<td>
<code><span class="keyword">fun </span><span class="identifier">rawHits</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Flow</span><span class="symbol">&lt;</span><span class="identifier">SearchHit</span><span class="symbol">&gt;</span></code></td>
</tr>
<tr>
<td>
<h4><a href="raw-responses.html">rawResponses</a></h4>
</td>
<td>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<HTML>
<HEAD>
<meta charset="UTF-8">
<title>AsyncSearchResults.mappedHits - es-kotlin-wrapper-client</title>
<link rel="stylesheet" href="../../../style.css">
</HEAD>
<BODY>
<a href="../../index.html">es-kotlin-wrapper-client</a>&nbsp;/&nbsp;<a href="../index.html">io.inbot.eskotlinwrapper</a>&nbsp;/&nbsp;<a href="index.html">AsyncSearchResults</a>&nbsp;/&nbsp;<a href="./mapped-hits.html">mappedHits</a><br/>
<br/>
<h1>mappedHits</h1>
<a name="io.inbot.eskotlinwrapper.AsyncSearchResults$mappedHits"></a>
<code><span class="keyword">val </span><span class="identifier">mappedHits</span><span class="symbol">: </span><span class="identifier">Flow</span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code>
<p>A <code>Flow</code> of <code>T</code>. Use this if you don't need the underlying <code>SearchHit</code>.</p>
</BODY>
</HTML>

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<HTML>
<HEAD>
<meta charset="UTF-8">
<title>AsyncSearchResults.searchHits - es-kotlin-wrapper-client</title>
<link rel="stylesheet" href="../../../style.css">
</HEAD>
<BODY>
<a href="../../index.html">es-kotlin-wrapper-client</a>&nbsp;/&nbsp;<a href="../index.html">io.inbot.eskotlinwrapper</a>&nbsp;/&nbsp;<a href="index.html">AsyncSearchResults</a>&nbsp;/&nbsp;<a href="./search-hits.html">searchHits</a><br/>
<br/>
<h1>searchHits</h1>
<a name="io.inbot.eskotlinwrapper.AsyncSearchResults$searchHits"></a>
<code><span class="keyword">val </span><span class="identifier">searchHits</span><span class="symbol">: </span><span class="identifier">Flow</span><span class="symbol">&lt;</span><span class="identifier">SearchHit</span><span class="symbol">&gt;</span></code>
<p>Returns just the <code>SearchHit</code>s as a <code>Flow</code>. This does not attempt to deserialize anything.</p>
</BODY>
</HTML>
4 changes: 2 additions & 2 deletions manual/coroutines.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,8 +141,8 @@ runBlocking {
}
}

// hits returns a Flow<Thing>
println("Hits: ${results.hits().count()}")
// hits is a Flow<Thing>
println("Hits: ${results.mappedHits.count()}")
}
```

Expand Down
Loading

0 comments on commit c520d0c

Please sign in to comment.