Skip to content

Commit af809de

Browse files
authored
Support restrictHighlightAndSnippetArrays search parameter
2 parents ba44344 + 43d7cd0 commit af809de

File tree

3 files changed

+35
-0
lines changed

3 files changed

+35
-0
lines changed

Source/Query.swift

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -475,6 +475,13 @@ open class Query : AbstractQuery {
475475
set { self["snippetEllipsisText"] = newValue }
476476
}
477477

478+
/// Restrict arrays in highlight and snippet results to items that matched the query. (defaults to `false`).
479+
/// When `false`, all array items are highlighted/snippeted. When `true`, only array items that matched at least partially are highlighted/snippeted.
480+
public var restrictHighlightAndSnippetArrays: Bool? {
481+
get { return Query.parseBool(self["restrictHighlightAndSnippetArrays"]) }
482+
set { self["restrictHighlightAndSnippetArrays"] = Query.buildBool(newValue) }
483+
}
484+
478485
// MARK: Numeric search parameters
479486

480487
/// Filter on numeric attributes.
@@ -962,6 +969,12 @@ open class Query : AbstractQuery {
962969
get { return AbstractQuery.toNumber(self.getRankingInfo) }
963970
set { self.getRankingInfo = newValue?.boolValue }
964971
}
972+
973+
@objc(restrictHighlightAndSnippetArrays)
974+
public var z_objc_restrictHighlightAndSnippetArrays: NSNumber? {
975+
get { return AbstractQuery.toNumber(self.restrictHighlightAndSnippetArrays) }
976+
set { self.restrictHighlightAndSnippetArrays = newValue?.boolValue }
977+
}
965978

966979
@objc(distinct)
967980
public var z_objc_distinct: NSNumber? {

Tests/ObjectiveCBridging.m

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ - (void)testQuery {
103103
query.highlightPreTag = @"<mark>";
104104
query.highlightPostTag = @"</mark>";
105105
query.snippetEllipsisText = @"...";
106+
query.restrictHighlightAndSnippetArrays = false;
106107
query.numericFilters = @[ @"foo > 0", @"baz < 1000" ];
107108
query.tagFilters = @[ @"foo", @"bar" ];
108109
query.distinct = [NSNumber numberWithInt:6];
@@ -524,6 +525,17 @@ - (void)test_getRankingInfo {
524525
XCTAssertEqualObjects(query2.getRankingInfo, value);
525526
}
526527

528+
- (void)test_restrictHighlightAndSnippetArrays {
529+
Query* query1 = [Query new];
530+
XCTAssertNil(query1.restrictHighlightAndSnippetArrays);
531+
532+
NSNumber* value = [NSNumber numberWithBool:FALSE];
533+
query1.restrictHighlightAndSnippetArrays = value;
534+
XCTAssertEqualObjects(query1[@"restrictHighlightAndSnippetArrays"], @"false");
535+
Query* query2 = [Query parse:[query1 build]];
536+
XCTAssertEqualObjects(query2.restrictHighlightAndSnippetArrays, value);
537+
}
538+
527539
- (void)test_distinct {
528540
Query* query1 = [Query new];
529541
XCTAssertNil(query1.distinct);

Tests/QueryTests.swift

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -435,6 +435,16 @@ class QueryTests: XCTestCase {
435435
XCTAssertEqual(query2.snippetEllipsisText, "")
436436
}
437437

438+
func test_restrictHighlightAndSnippetArrays() {
439+
let query1 = Query()
440+
XCTAssertNil(query1.restrictHighlightAndSnippetArrays)
441+
query1.restrictHighlightAndSnippetArrays = false
442+
XCTAssertEqual(query1.restrictHighlightAndSnippetArrays, false)
443+
XCTAssertEqual(query1["restrictHighlightAndSnippetArrays"], "false")
444+
let query2 = Query.parse(query1.build())
445+
XCTAssertEqual(query2.restrictHighlightAndSnippetArrays, false)
446+
}
447+
438448
func test_analyticsTags() {
439449
let query1 = Query()
440450
XCTAssertNil(query1.analyticsTags)

0 commit comments

Comments
 (0)