Berserk Docs
Scalar FunctionsString Functions

has_any_index

Returns the index in the lookup array of the first element found as a term in the source string, or -1.

Syntax

has_any_index(source, lookup)

Parameters

Prop

Type

Given a dynamic field

This parameter is string-only. In permissive mode, which every query runs in, almost every field arrives as a dynamic, so passing one works because Berserk injects asstring: extract-or-null, the value when it really is a string and null otherwise, so the call yields null (a predicate yields false). A property bag or array is therefore not matched, and tostring() is never applied implicitly — use it explicitly to match a bag's JSON text, keys included. To search the strings inside an object or array, write body.* contains "x" (also has, hasprefix and hassuffix). See String coercion and the asXXX family.

Returns: long

Examples

Example 1 — Returns 1 (index of "Lindisfarne" in the lookup array)

print has_any_index(
  "The longship Naglfar sailed to Lindisfarne",
  dynamic(["Kattegat", "Lindisfarne", "York"])
)
print_0 (long)
1

Example 2 — Returns -1 when no lookup value matches

print has_any_index(
  "The longship Naglfar sailed to Lindisfarne",
  dynamic(["Paris", "York", "Dublin"])
)
print_0 (long)
-1

On this page