Skip to content

Commit 54ae665

Browse files
Merge #584
584: Suppport prefix and facet search settings r=brunoocasali a=ellnix # Pull Request ## Related issue Fixes #580 --- Appended "_setting" to all facet search settings to avoid collisions with the `facet_search` method and avoid confusion. Co-authored-by: ellnix <[email protected]>
2 parents 4040605 + 6a93a5c commit 54ae665

File tree

4 files changed

+104
-4
lines changed

4 files changed

+104
-4
lines changed

.code-samples.meilisearch.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -647,6 +647,18 @@ update_proximity_precision_settings_1: |-
647647
client.index('books').update_proximity_precision('byAttribute')
648648
reset_proximity_precision_settings_1: |-
649649
client.index('books').reset_proximity_precision
650+
get_facet_search_settings_1: |-
651+
client.index('INDEX_UID').facet_search_setting
652+
update_facet_search_settings_1: |-
653+
client.index('INDEX_UID').update_facet_search_setting(false)
654+
reset_facet_search_settings_1: |-
655+
client.index('INDEX_UID').reset_facet_search_setting
656+
get_prefix_search_settings_1: |-
657+
client.index('INDEX_UID').prefix_search
658+
update_prefix_search_settings_1: |-
659+
client.index('INDEX_UID').update_prefix_search('disabled')
660+
reset_prefix_search_settings_1: |-
661+
client.index('INDEX_UID').reset_prefix_search
650662
get_search_cutoff_1: |-
651663
client.index('movies').search_cutoff_ms
652664
update_search_cutoff_1: |-

.rubocop_todo.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
# This configuration was generated by
22
# `rubocop --auto-gen-config`
3-
# on 2025-01-02 22:29:58 UTC using RuboCop version 1.69.2.
3+
# on 2025-01-08 15:54:24 UTC using RuboCop version 1.69.2.
44
# The point is for the user to remove these configuration records
55
# one by one as the offenses are removed from the code base.
66
# Note that changes in the inspected code, or installation of new
77
# versions of RuboCop, may require this file to be generated again.
88

9-
# Offense count: 64
9+
# Offense count: 66
1010
# Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
1111
# AllowedMethods: refine
1212
Metrics/BlockLength:
13-
Max: 628
13+
Max: 670
1414

1515
# Offense count: 4
1616
# Configuration parameters: CountComments, CountAsOne.
1717
Metrics/ClassLength:
18-
Max: 452
18+
Max: 470
1919

2020
# Offense count: 1
2121
# Configuration parameters: Max, CountKeywordArgs.

lib/meilisearch/index.rb

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -645,5 +645,33 @@ def update_localized_attributes(new_localized_attributes)
645645
def reset_localized_attributes
646646
http_delete("/indexes/#{@uid}/settings/localized-attributes")
647647
end
648+
649+
### SETTINGS - FACET SEARCH
650+
651+
def facet_search_setting
652+
http_get("/indexes/#{@uid}/settings/facet-search")
653+
end
654+
655+
def update_facet_search_setting(new_facet_search_setting)
656+
http_put("/indexes/#{@uid}/settings/facet-search", new_facet_search_setting)
657+
end
658+
659+
def reset_facet_search_setting
660+
http_delete("/indexes/#{@uid}/settings/facet-search")
661+
end
662+
663+
### SETTINGS - PREFIX SEARCH
664+
665+
def prefix_search
666+
http_get("/indexes/#{@uid}/settings/prefix-search")
667+
end
668+
669+
def update_prefix_search(new_prefix_search_setting)
670+
http_put("/indexes/#{@uid}/settings/prefix-search", new_prefix_search_setting)
671+
end
672+
673+
def reset_prefix_search
674+
http_delete("/indexes/#{@uid}/settings/prefix-search")
675+
end
648676
end
649677
end

spec/meilisearch/index/settings_spec.rb

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -805,4 +805,64 @@
805805
expect(index.localized_attributes).to eq(default_localized_attributes)
806806
end
807807
end
808+
809+
context 'On facet search' do
810+
let(:index) { client.index(uid) }
811+
let(:default_facet_search_setting) { true }
812+
813+
before { client.create_index(uid).await }
814+
815+
it '#facet_search_setting gets default value' do
816+
expect(index.facet_search_setting).to eq(default_facet_search_setting)
817+
end
818+
819+
it '#update_facet_search_setting updates default value' do
820+
update_task = index.update_facet_search_setting(false)
821+
client.wait_for_task(update_task['taskUid'])
822+
823+
expect(index.facet_search_setting).to eq(false)
824+
end
825+
826+
it '#reset_facet_search_setting resets facet search' do
827+
update_task = index.update_facet_search_setting(false)
828+
client.wait_for_task(update_task['taskUid'])
829+
830+
expect(index.facet_search_setting).to eq(false)
831+
832+
reset_task = index.reset_facet_search_setting
833+
client.wait_for_task(reset_task['taskUid'])
834+
835+
expect(index.facet_search_setting).to eq(default_facet_search_setting)
836+
end
837+
end
838+
839+
context 'On prefix search' do
840+
let(:index) { client.index(uid) }
841+
let(:default_prefix_search) { 'indexingTime' }
842+
843+
before { client.create_index(uid).await }
844+
845+
it '#prefix_search gets default value' do
846+
expect(index.prefix_search).to eq(default_prefix_search)
847+
end
848+
849+
it '#update_prefix_search updates default value' do
850+
update_task = index.update_prefix_search('disabled')
851+
client.wait_for_task(update_task['taskUid'])
852+
853+
expect(index.prefix_search).to eq('disabled')
854+
end
855+
856+
it '#reset_prefix_search resets prefix search' do
857+
update_task = index.update_prefix_search('disabled')
858+
client.wait_for_task(update_task['taskUid'])
859+
860+
expect(index.prefix_search).to eq('disabled')
861+
862+
reset_task = index.reset_prefix_search
863+
client.wait_for_task(reset_task['taskUid'])
864+
865+
expect(index.prefix_search).to eq(default_prefix_search)
866+
end
867+
end
808868
end

0 commit comments

Comments
 (0)