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

feat: MultiSearcher, HitsSearcher and FacetsSearcher #44

Merged
merged 44 commits into from
Mar 29, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
76b857c
migrate search to hits searcher
aallam Oct 28, 2021
5a3ae8e
wip
aallam Nov 2, 2021
ee605b9
use updated sort by
aallam Nov 3, 2021
245df62
migrate to qrcd
aallam Dec 13, 2021
26cc81e
wip
aallam Dec 15, 2021
44873d5
chore: update and fix issues
aallam Jan 3, 2022
73cee1e
update facet list search
aallam Jan 4, 2022
b34f54d
migrate showcase to the new searchers
aallam Jan 5, 2022
25017f9
migrate insights demo
aallam Jan 5, 2022
8f2ae79
migrate getting started demo
aallam Jan 5, 2022
7aa9a8a
migrate getting started compose demo
aallam Jan 5, 2022
2788d60
apply recent changes
aallam Jan 5, 2022
3b55418
view binding: getting started guides
aallam Jan 5, 2022
4c1a5d0
view binding: insigths guide
aallam Jan 5, 2022
68a70dc
wip: showcase migration from kotlin android extension
aallam Jan 6, 2022
cf8d98b
wip: filters bindings left
aallam Jan 7, 2022
45301f2
wip(view-binding): hierarchical and highlighting
aallam Jan 7, 2022
5bf2b4a
view-binding: list, loading, related items, stats and sort by
aallam Jan 7, 2022
ea22751
removal of kotlin android extensions from showcase app
aallam Jan 7, 2022
752fa61
leakcanary 2.8.1
aallam Jan 7, 2022
ea81bde
update exchange example to use function builder with appId/apiKey
aallam Jan 10, 2022
ac4feef
migrate from old searcher pager
aallam Jan 11, 2022
3aad9d4
wip: paginator
aallam Feb 2, 2022
34c751b
Merge branch 'main' into feat/multisearcher
aallam Mar 16, 2022
f0ef133
update to IS3 snapshot
aallam Mar 21, 2022
5f6b22e
update to kotlin 1.6.10
aallam Mar 23, 2022
733a4b0
group project by type
aallam Mar 24, 2022
945ce4a
query suggestions update
aallam Mar 24, 2022
b00b733
show suggestions and hits in the same view
aallam Mar 24, 2022
434b45d
update to use fragments
aallam Mar 25, 2022
def825b
simplify view model
aallam Mar 25, 2022
98ee619
refactor query suggestions guide
aallam Mar 28, 2022
0b5ad94
move insights guide into guides
aallam Mar 28, 2022
d1a3a5a
merge compose guide into guides
aallam Mar 28, 2022
d9b6152
update index for compose getting started
aallam Mar 28, 2022
3cedf47
remove adding fragments to the backstack
aallam Mar 28, 2022
349208c
use ecom index
aallam Mar 28, 2022
6bbc44a
remove view binding from the guides
aallam Mar 29, 2022
e7f970d
update getting started guide
aallam Mar 29, 2022
4d8b295
fix places text
aallam Mar 29, 2022
4d4684c
add voice search guide
aallam Mar 29, 2022
37b533f
declarative ui guide
aallam Mar 29, 2022
92ec40c
remove redundant code
aallam Mar 29, 2022
9ee3e77
update gradle to 7.4.1
aallam Mar 29, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
10 changes: 5 additions & 5 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
buildscript {
ext.kotlin_version = "1.5.31"
ext.kotlin_version = "1.6.10"
ext.lifecycle_version = "2.2.0"
ext.build_tools_version = "31.0.0"
ext.instantsearch = '2.11.4'
ext.canary = '2.7'
ext.compose_version = '1.0.5'
ext.build_tools_version = "32.0.0"
ext.instantsearch = '3.0.0-SNAPSHOT'
ext.canary = '2.8.1'
ext.compose_version = '1.1.1'
repositories {
mavenCentral()
google()
Expand Down
1 change: 0 additions & 1 deletion compose/.gitignore

This file was deleted.

67 changes: 0 additions & 67 deletions compose/build.gradle

This file was deleted.

21 changes: 0 additions & 21 deletions compose/proguard-rules.pro

This file was deleted.

This file was deleted.

25 changes: 0 additions & 25 deletions compose/src/main/AndroidManifest.xml

This file was deleted.

16 changes: 0 additions & 16 deletions compose/src/main/res/values-night/themes.xml

This file was deleted.

10 changes: 0 additions & 10 deletions compose/src/main/res/values/colors.xml

This file was deleted.

3 changes: 0 additions & 3 deletions compose/src/main/res/values/strings.xml

This file was deleted.

25 changes: 0 additions & 25 deletions compose/src/main/res/values/themes.xml

This file was deleted.

17 changes: 0 additions & 17 deletions compose/src/test/java/com/algolia/searchapp/ExampleUnitTest.kt

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -5,30 +5,26 @@ import com.algolia.instantsearch.compose.hits.HitsState
import com.algolia.instantsearch.compose.searchbox.SearchBoxState
import com.algolia.instantsearch.core.connection.ConnectionHandler
import com.algolia.instantsearch.core.hits.connectHitsView
import com.algolia.instantsearch.helper.searchbox.SearchBoxConnector
import com.algolia.instantsearch.helper.searchbox.connectView
import com.algolia.instantsearch.helper.searcher.facets.addFacetsSearcher
import com.algolia.instantsearch.helper.searcher.hits.addHitsSearcher
import com.algolia.instantsearch.helper.searcher.multi.MultiSearcher
import com.algolia.search.client.ClientSearch
import com.algolia.instantsearch.searchbox.SearchBoxConnector
import com.algolia.instantsearch.searchbox.connectView
import com.algolia.instantsearch.searcher.facets.addFacetsSearcher
import com.algolia.instantsearch.searcher.hits.addHitsSearcher
import com.algolia.instantsearch.searcher.multi.MultiSearcher
import com.algolia.search.helper.deserialize
import com.algolia.search.model.APIKey
import com.algolia.search.model.ApplicationID
import com.algolia.search.model.Attribute
import com.algolia.search.model.IndexName
import com.algolia.search.model.search.Facet
import io.ktor.client.features.logging.*

class MainViewModel : ViewModel() {

private val client = ClientSearch(
ApplicationID("latency"),
APIKey("afc3dd66dd1293e2e2736a5a51b05c0a"),
LogLevel.ALL
private val multiSearcher = MultiSearcher(
applicationID = ApplicationID("latency"),
apiKey = APIKey("1f6fd3a6fb973cb08419fe7d288fa4db")
)
private val indexName = IndexName("instant_search")
private val attribute = Attribute("categories")
private val multiSearcher = MultiSearcher(client)
private val suggestionsSearcher = multiSearcher.addHitsSearcher(indexName)
private val categoriesSearcher = multiSearcher.addFacetsSearcher(indexName, attribute)
private val searchBoxConnector = SearchBoxConnector(multiSearcher)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.algolia.exchange.multi.index

import com.algolia.instantsearch.helper.highlighting.Highlightable
import com.algolia.instantsearch.highlighting.Highlightable
import com.algolia.search.model.Attribute
import com.algolia.search.model.ObjectID
import com.algolia.search.model.indexing.Indexable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,26 +5,22 @@ import com.algolia.instantsearch.compose.hits.HitsState
import com.algolia.instantsearch.compose.searchbox.SearchBoxState
import com.algolia.instantsearch.core.connection.ConnectionHandler
import com.algolia.instantsearch.core.hits.connectHitsView
import com.algolia.instantsearch.helper.searchbox.SearchBoxConnector
import com.algolia.instantsearch.helper.searchbox.connectView
import com.algolia.instantsearch.helper.searcher.hits.addHitsSearcher
import com.algolia.instantsearch.helper.searcher.multi.MultiSearcher
import com.algolia.search.client.ClientSearch
import com.algolia.instantsearch.searchbox.SearchBoxConnector
import com.algolia.instantsearch.searchbox.connectView
import com.algolia.instantsearch.searcher.hits.addHitsSearcher
import com.algolia.instantsearch.searcher.multi.MultiSearcher
import com.algolia.search.helper.deserialize
import com.algolia.search.model.APIKey
import com.algolia.search.model.ApplicationID
import com.algolia.search.model.IndexName
import com.algolia.search.model.search.Query
import io.ktor.client.features.logging.*

class MainViewModel : ViewModel() {

private val client = ClientSearch(
ApplicationID("latency"),
APIKey("1f6fd3a6fb973cb08419fe7d288fa4db"),
LogLevel.ALL
private val multiSearcher = MultiSearcher(
applicationID = ApplicationID("latency"),
apiKey = APIKey("1f6fd3a6fb973cb08419fe7d288fa4db")
)
private val multiSearcher = MultiSearcher(client)
private val actorsSearcher = multiSearcher.addHitsSearcher(IndexName("mobile_demo_actors"), Query(hitsPerPage = 5))
private val moviesSearcher = multiSearcher.addHitsSearcher(IndexName("mobile_demo_movies"))
private val searchBoxConnector = SearchBoxConnector(multiSearcher)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.algolia.exchange.multi.index

import com.algolia.instantsearch.helper.highlighting.Highlightable
import com.algolia.instantsearch.highlighting.Highlightable
import com.algolia.search.model.Attribute
import com.algolia.search.model.ObjectID
import com.algolia.search.model.indexing.Indexable
Expand Down
Original file line number Diff line number Diff line change
@@ -1,38 +1,28 @@
package com.algolia.exchange.query.suggestions.categories

import android.util.Log
import androidx.lifecycle.ViewModel
import com.algolia.instantsearch.compose.hits.HitsState
import com.algolia.instantsearch.compose.searchbox.SearchBoxState
import com.algolia.instantsearch.core.connection.ConnectionHandler
import com.algolia.instantsearch.core.hits.connectHitsView
import com.algolia.instantsearch.core.selectable.list.SelectionMode
import com.algolia.instantsearch.helper.filter.facet.FacetListConnector
import com.algolia.instantsearch.helper.filter.state.FilterState
import com.algolia.instantsearch.helper.searchbox.SearchBoxConnector
import com.algolia.instantsearch.helper.searchbox.connectSearcher
import com.algolia.instantsearch.helper.searchbox.connectView
import com.algolia.instantsearch.helper.searcher.connectFilterState
import com.algolia.instantsearch.helper.searcher.facets.addFacetsSearcher
import com.algolia.instantsearch.helper.searcher.hits.addHitsSearcher
import com.algolia.instantsearch.helper.searcher.multi.MultiSearcher
import com.algolia.search.client.ClientSearch
import com.algolia.instantsearch.searchbox.SearchBoxConnector
import com.algolia.instantsearch.searchbox.connectView
import com.algolia.instantsearch.searcher.facets.addFacetsSearcher
import com.algolia.instantsearch.searcher.hits.addHitsSearcher
import com.algolia.instantsearch.searcher.multi.MultiSearcher
import com.algolia.search.helper.deserialize
import com.algolia.search.model.APIKey
import com.algolia.search.model.ApplicationID
import com.algolia.search.model.Attribute
import com.algolia.search.model.IndexName
import com.algolia.search.model.search.Facet
import io.ktor.client.features.logging.*

class MainViewModel : ViewModel() {

private val client = ClientSearch(
ApplicationID("latency"),
APIKey("afc3dd66dd1293e2e2736a5a51b05c0a"),
LogLevel.ALL
private val multiSearcher = MultiSearcher(
applicationID = ApplicationID("latency"),
apiKey = APIKey("afc3dd66dd1293e2e2736a5a51b05c0a"),
)
private val multiSearcher = MultiSearcher(client)
private val suggestionsSearcher = multiSearcher.addHitsSearcher(
indexName = IndexName("instantsearch_query_suggestions")
)
Expand All @@ -52,7 +42,11 @@ class MainViewModel : ViewModel() {
init {
connections += searchBoxConnector.connectView(searchBoxState)
connections += categoriesSearcher.connectHitsView(categoriesState) { it.facets }
connections += suggestionsSearcher.connectHitsView(suggestionsState) { it.hits.deserialize(Suggestion.serializer()) }
connections += suggestionsSearcher.connectHitsView(suggestionsState) {
it.hits.deserialize(
Suggestion.serializer()
)
}
multiSearcher.searchAsync()
}

Expand Down
Loading