Skip to content
This repository was archived by the owner on May 24, 2022. It is now read-only.

Commit d841dfe

Browse files
authored
feat: MultiSearcher, HitsSearcher and FacetsSearcher (#44)
1 parent 6b7f328 commit d841dfe

File tree

381 files changed

+3138
-3820
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

381 files changed

+3138
-3820
lines changed

build.gradle

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
buildscript {
2-
ext.kotlin_version = "1.5.31"
2+
ext.kotlin_version = "1.6.10"
33
ext.lifecycle_version = "2.2.0"
4-
ext.build_tools_version = "31.0.0"
5-
ext.instantsearch = '2.11.4'
6-
ext.canary = '2.7'
7-
ext.compose_version = '1.0.5'
4+
ext.build_tools_version = "32.0.0"
5+
ext.instantsearch = '3.0.0-SNAPSHOT'
6+
ext.canary = '2.8.1'
7+
ext.compose_version = '1.1.1'
88
repositories {
99
mavenCentral()
1010
google()

compose/.gitignore

Lines changed: 0 additions & 1 deletion
This file was deleted.

compose/build.gradle

Lines changed: 0 additions & 67 deletions
This file was deleted.

compose/proguard-rules.pro

Lines changed: 0 additions & 21 deletions
This file was deleted.

compose/src/androidTest/java/com/algolia/searchapp/ExampleInstrumentedTest.kt

Lines changed: 0 additions & 24 deletions
This file was deleted.

compose/src/main/AndroidManifest.xml

Lines changed: 0 additions & 25 deletions
This file was deleted.

compose/src/main/res/values-night/themes.xml

Lines changed: 0 additions & 16 deletions
This file was deleted.

compose/src/main/res/values/colors.xml

Lines changed: 0 additions & 10 deletions
This file was deleted.

compose/src/main/res/values/strings.xml

Lines changed: 0 additions & 3 deletions
This file was deleted.

compose/src/main/res/values/themes.xml

Lines changed: 0 additions & 25 deletions
This file was deleted.

compose/src/test/java/com/algolia/searchapp/ExampleUnitTest.kt

Lines changed: 0 additions & 17 deletions
This file was deleted.

exchange/categories-hits/src/main/kotlin/com/algolia/exchange/query/categories/hits/MainViewModel.kt

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,30 +5,26 @@ import com.algolia.instantsearch.compose.hits.HitsState
55
import com.algolia.instantsearch.compose.searchbox.SearchBoxState
66
import com.algolia.instantsearch.core.connection.ConnectionHandler
77
import com.algolia.instantsearch.core.hits.connectHitsView
8-
import com.algolia.instantsearch.helper.searchbox.SearchBoxConnector
9-
import com.algolia.instantsearch.helper.searchbox.connectView
10-
import com.algolia.instantsearch.helper.searcher.facets.addFacetsSearcher
11-
import com.algolia.instantsearch.helper.searcher.hits.addHitsSearcher
12-
import com.algolia.instantsearch.helper.searcher.multi.MultiSearcher
13-
import com.algolia.search.client.ClientSearch
8+
import com.algolia.instantsearch.searchbox.SearchBoxConnector
9+
import com.algolia.instantsearch.searchbox.connectView
10+
import com.algolia.instantsearch.searcher.facets.addFacetsSearcher
11+
import com.algolia.instantsearch.searcher.hits.addHitsSearcher
12+
import com.algolia.instantsearch.searcher.multi.MultiSearcher
1413
import com.algolia.search.helper.deserialize
1514
import com.algolia.search.model.APIKey
1615
import com.algolia.search.model.ApplicationID
1716
import com.algolia.search.model.Attribute
1817
import com.algolia.search.model.IndexName
1918
import com.algolia.search.model.search.Facet
20-
import io.ktor.client.features.logging.*
2119

2220
class MainViewModel : ViewModel() {
2321

24-
private val client = ClientSearch(
25-
ApplicationID("latency"),
26-
APIKey("afc3dd66dd1293e2e2736a5a51b05c0a"),
27-
LogLevel.ALL
22+
private val multiSearcher = MultiSearcher(
23+
applicationID = ApplicationID("latency"),
24+
apiKey = APIKey("1f6fd3a6fb973cb08419fe7d288fa4db")
2825
)
2926
private val indexName = IndexName("instant_search")
3027
private val attribute = Attribute("categories")
31-
private val multiSearcher = MultiSearcher(client)
3228
private val suggestionsSearcher = multiSearcher.addHitsSearcher(indexName)
3329
private val categoriesSearcher = multiSearcher.addFacetsSearcher(indexName, attribute)
3430
private val searchBoxConnector = SearchBoxConnector(multiSearcher)

exchange/multi-index/src/main/kotlin/com/algolia/exchange/multi/index/Actor.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.algolia.exchange.multi.index
22

3-
import com.algolia.instantsearch.helper.highlighting.Highlightable
3+
import com.algolia.instantsearch.highlighting.Highlightable
44
import com.algolia.search.model.Attribute
55
import com.algolia.search.model.ObjectID
66
import com.algolia.search.model.indexing.Indexable

exchange/multi-index/src/main/kotlin/com/algolia/exchange/multi/index/MainViewModel.kt

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,22 @@ import com.algolia.instantsearch.compose.hits.HitsState
55
import com.algolia.instantsearch.compose.searchbox.SearchBoxState
66
import com.algolia.instantsearch.core.connection.ConnectionHandler
77
import com.algolia.instantsearch.core.hits.connectHitsView
8-
import com.algolia.instantsearch.helper.searchbox.SearchBoxConnector
9-
import com.algolia.instantsearch.helper.searchbox.connectView
10-
import com.algolia.instantsearch.helper.searcher.hits.addHitsSearcher
11-
import com.algolia.instantsearch.helper.searcher.multi.MultiSearcher
12-
import com.algolia.search.client.ClientSearch
8+
import com.algolia.instantsearch.searchbox.SearchBoxConnector
9+
import com.algolia.instantsearch.searchbox.connectView
10+
import com.algolia.instantsearch.searcher.hits.addHitsSearcher
11+
import com.algolia.instantsearch.searcher.multi.MultiSearcher
1312
import com.algolia.search.helper.deserialize
1413
import com.algolia.search.model.APIKey
1514
import com.algolia.search.model.ApplicationID
1615
import com.algolia.search.model.IndexName
1716
import com.algolia.search.model.search.Query
18-
import io.ktor.client.features.logging.*
1917

2018
class MainViewModel : ViewModel() {
2119

22-
private val client = ClientSearch(
23-
ApplicationID("latency"),
24-
APIKey("1f6fd3a6fb973cb08419fe7d288fa4db"),
25-
LogLevel.ALL
20+
private val multiSearcher = MultiSearcher(
21+
applicationID = ApplicationID("latency"),
22+
apiKey = APIKey("1f6fd3a6fb973cb08419fe7d288fa4db")
2623
)
27-
private val multiSearcher = MultiSearcher(client)
2824
private val actorsSearcher = multiSearcher.addHitsSearcher(IndexName("mobile_demo_actors"), Query(hitsPerPage = 5))
2925
private val moviesSearcher = multiSearcher.addHitsSearcher(IndexName("mobile_demo_movies"))
3026
private val searchBoxConnector = SearchBoxConnector(multiSearcher)

exchange/multi-index/src/main/kotlin/com/algolia/exchange/multi/index/Movie.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.algolia.exchange.multi.index
22

3-
import com.algolia.instantsearch.helper.highlighting.Highlightable
3+
import com.algolia.instantsearch.highlighting.Highlightable
44
import com.algolia.search.model.Attribute
55
import com.algolia.search.model.ObjectID
66
import com.algolia.search.model.indexing.Indexable

exchange/query-suggestions-categories/src/main/kotlin/com/algolia/exchange/query/suggestions/categories/MainViewModel.kt

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,28 @@
11
package com.algolia.exchange.query.suggestions.categories
22

3-
import android.util.Log
43
import androidx.lifecycle.ViewModel
54
import com.algolia.instantsearch.compose.hits.HitsState
65
import com.algolia.instantsearch.compose.searchbox.SearchBoxState
76
import com.algolia.instantsearch.core.connection.ConnectionHandler
87
import com.algolia.instantsearch.core.hits.connectHitsView
9-
import com.algolia.instantsearch.core.selectable.list.SelectionMode
10-
import com.algolia.instantsearch.helper.filter.facet.FacetListConnector
11-
import com.algolia.instantsearch.helper.filter.state.FilterState
12-
import com.algolia.instantsearch.helper.searchbox.SearchBoxConnector
13-
import com.algolia.instantsearch.helper.searchbox.connectSearcher
14-
import com.algolia.instantsearch.helper.searchbox.connectView
15-
import com.algolia.instantsearch.helper.searcher.connectFilterState
16-
import com.algolia.instantsearch.helper.searcher.facets.addFacetsSearcher
17-
import com.algolia.instantsearch.helper.searcher.hits.addHitsSearcher
18-
import com.algolia.instantsearch.helper.searcher.multi.MultiSearcher
19-
import com.algolia.search.client.ClientSearch
8+
import com.algolia.instantsearch.searchbox.SearchBoxConnector
9+
import com.algolia.instantsearch.searchbox.connectView
10+
import com.algolia.instantsearch.searcher.facets.addFacetsSearcher
11+
import com.algolia.instantsearch.searcher.hits.addHitsSearcher
12+
import com.algolia.instantsearch.searcher.multi.MultiSearcher
2013
import com.algolia.search.helper.deserialize
2114
import com.algolia.search.model.APIKey
2215
import com.algolia.search.model.ApplicationID
2316
import com.algolia.search.model.Attribute
2417
import com.algolia.search.model.IndexName
2518
import com.algolia.search.model.search.Facet
26-
import io.ktor.client.features.logging.*
2719

2820
class MainViewModel : ViewModel() {
2921

30-
private val client = ClientSearch(
31-
ApplicationID("latency"),
32-
APIKey("afc3dd66dd1293e2e2736a5a51b05c0a"),
33-
LogLevel.ALL
22+
private val multiSearcher = MultiSearcher(
23+
applicationID = ApplicationID("latency"),
24+
apiKey = APIKey("afc3dd66dd1293e2e2736a5a51b05c0a"),
3425
)
35-
private val multiSearcher = MultiSearcher(client)
3626
private val suggestionsSearcher = multiSearcher.addHitsSearcher(
3727
indexName = IndexName("instantsearch_query_suggestions")
3828
)
@@ -52,7 +42,11 @@ class MainViewModel : ViewModel() {
5242
init {
5343
connections += searchBoxConnector.connectView(searchBoxState)
5444
connections += categoriesSearcher.connectHitsView(categoriesState) { it.facets }
55-
connections += suggestionsSearcher.connectHitsView(suggestionsState) { it.hits.deserialize(Suggestion.serializer()) }
45+
connections += suggestionsSearcher.connectHitsView(suggestionsState) {
46+
it.hits.deserialize(
47+
Suggestion.serializer()
48+
)
49+
}
5650
multiSearcher.searchAsync()
5751
}
5852

0 commit comments

Comments
 (0)