# 文本搜索

文本搜索是您可以在 Qlik Sense 中使用的主要搜索方法。使用引号、通配符和修饰符搜索字段中的值。在键入搜索字符串后，Qlik Sense 将筛选字段值，并显示匹配条目。

文本搜索可以分为两种不同的搜索模式：

* 普通搜索

* 通配符搜索

文本搜索中的搜索模式

| 搜索类型 | 描述 | 示例 | 支持的数据类型 |
| --- | --- | --- | --- |
| 普通搜索 | 使用包含加号和减号修饰符的文本 | ACME -Inc | 字符或文本字符串、数值、双值 |
| 通配符搜索 | 使用包含通配符的文本，不包括加号和减号修饰符 | \*公司 | 字符或文本字符串、数值、双值 |

## 普通搜索

普通文本不能包含通配符，但可以包含加号和减号修饰符。普通搜索只能交互使用，不能用于集合分析表达式内的搜索。

如果执行常规搜索，将显示与搜索字符串匹配的字符串。如果使用多个以空格分隔的字符串，则会将其中每个字符串视为单独的搜索字符串，并显示包含任一字符串的所有字段值。

使用单个搜索字符串（无引号）进行普通文本搜索

使用单个搜索字符串（无引号）进行普通文本搜索

使用单个搜索字符串（无引号）进行普通文本搜索 ![单个字符串 'ab' 的文本搜索，并显示结果。不使用引号，并显示结果。](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_TextSearchResults-one-string.png)

使用由空格分隔的两个搜索字符串进行普通文本搜索（无引号）

使用由空格分隔的两个搜索字符串进行普通文本搜索（无引号）

使用由空格分隔的两个搜索字符串进行普通文本搜索（无引号） ![两个单独的字符串的文本搜索：'abc' 和 'solution，用空格分隔。不使用引号，并显示结果。](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_TextSearchResults-two-strings.png)

信息注释

由于客户端和引擎处理您的搜索输入的方式存在差异，标准空格字符是唯一完全受支持用作词边界令牌的分隔符。其他分隔符可能受引擎支持并被解释为有效的词边界标记，但由于客户端输入限制而无法使用。

这些客户端限制是必需的，以便客户端能够（通过仅限 ASCII 的正则表达式）逐字符解析并结构化输入的文本字符串，并将其转换为独立的、可搜索的词。

词边界分类器的实际解释是由 ICU 库通过 Unicode 提供的一种基于规则的分类，且高度依赖于系统语言设置。

普通文本搜索示例

| 示例 | 结果 |
| --- | --- |
| "orange juice" | 仅找到包含整个字符串 “orange juice” 的字段值。请参阅 [引号](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Selections/SelectionsToolbar/text-search-selections-visualizations.htm#Quotati)。 |
| orange juice | 在没有引号的情况下，将显示包含 “orange” 或 “juice” 的全部字段。 |
| +orange +juice | 查找诸如 “orange juice”, “orange and apple juice” 和 “juice from oranges” 的匹配。请参阅 [加号修饰符 (+)](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Selections/SelectionsToolbar/text-search-selections-visualizations.htm#Plus)。 |
| -orange ‑juice | 排除包含 orange 或 juice 的结果。请参阅 [减号修饰符 (-)](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Selections/SelectionsToolbar/text-search-selections-visualizations.htm#Minus)。 |

### 引号

如果要将各单独的搜索字符串仅视为一个字符串，则使用引号 (" ") 将这些字符串连接在一起。

使用单个搜索字符串（包含在引号中）进行文本搜索

使用单个搜索字符串（包含在引号中）进行文本搜索

使用单个搜索字符串（包含在引号中）进行文本搜索 ![单个字符串 'abc solution' 文本搜索，带引号。结果只显示包含整个搜索字符串的字段；在这种情况下，唯一的结果是 'ABC Solutions'。](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_TextSearchResults-one-string-quotes.png)

### 修饰符

修饰符允许您通过包含或排除满足特定条件的值来优化搜索结果。

有两种类型的修饰符可用：

* 加号修饰符 (+)

* 减号修饰符 (-)

#### 加号修饰符 (+)

使用加号修饰符时，可以设置以下条件：匹配条目中必须包含带加号的字符串。但是，这些字符串不一定需要彼此相邻，也不一定使用与输入顺序相同的顺序。

在以下示例中，加号修饰符放置在值 abc 旁边。结果必须包含此值，但顺序无关紧要。第二个字符串 solution 不受此条件的约束，因此它可以出现在结果中，但不需要存在。

搜索包含加号修饰符 (+)

搜索包含加号修饰符 (+)

搜索包含加号修饰符 (+) ![两个单独字符串前面包含加号修饰符的搜索。具体来说，搜索值 '+abc solution'。实际搜索不包含引号。](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_SearchResults-plus-modifier-ex-1.png)

#### 减号修饰符 (-)

将减号修饰符放在搜索词之前会排除包含该文本的结果。

在本例中，单词 "solution" 前的负号将从结果中删除包含此字符串的所有值。

带减号修饰符 (-) 的搜索字符串

带减号修饰符 (-) 的搜索字符串

带减号修饰符 (-) 的搜索字符串 ![使用减号修饰符的搜索。具体来说，搜索值 '-solution'。实际搜索不包含引号。](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_SearchResults-minus-modifier.png)

#### 组合修饰符

可以在单个搜索中组合减号和加号修饰符。在本例中，包含字符串 "solution" 的值将被排除，并且字符串 "abc" 必须存在，以便该值出现在结果中。

组合减号和加号修饰符搜索

组合减号和加号修饰符搜索

组合减号和加号修饰符搜索 ![使用减号和加号修饰符的搜索。具体来说，搜索值 '-solution +abc'。实际搜索不包含引号。](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_SearchResults-minus-plus-modifiers.png)

## 通配符搜索

通配符搜索允许您使文本搜索更加灵活。通配符搜索可用于交互式情况和集合分析。通配符搜索不能包含加号或减号修饰符。

可以在搜索字符串中使用一个或多个通配符。可以使用以下通配符：

* \* 通配符

* ? 通配符

* ^ 通配符

通配符文本搜索示例

| 示例 | 结果 |
| --- | --- |
| a\* | 查找所有以 “a” 开头的值，包括具有数个词的字符串，其中第一个词以 “a” 开头。 |
| \*b | 查找所有以字母 “b” 结束的值，包括具有数个词的字符串，其中最后一个词以 “b” 结束。 |
| \*c\* | 找到包含字母 “c” 的全部值，包括含多个单词的字符串。 |
| \*^ab\* | 返回具有以 “ab” 开头的词的所有值。<br><br>相当于正常搜索 “ab”，但与正常搜索不同，它可以利用通配符进行更复杂的搜索。它还可以用于编程搜索，如集合分析。 |
| r?ck | 找到有四个字母且以 “r” 开头，后跟任何字符，并以 “ck” 结尾的全部值，例如 “rack”, “rick”, “rock” 和 “ruck”。 |
| r?? ????d | 查找包括以 “r” 开头的三字母词的所有值以及以 “d” 结尾的五字母词。 |

信息注释如果使用通配符，则仅显示与整个搜索字符串匹配的记录，即空格不表示逻辑 OR。对于搜索字符串 '\*creamed'，不能在 "Rocky's creamed corn" 中获得匹配项，因为该值不是以 “creamed” 结尾。对于 “creamed\*”，也不能在 "Rocky's creamed corn" 中获得匹配项，因为该值不是以 “creamed” 开头。

信息注释搜索字符串中的空格将导致结果不同。如果搜索 “\*corn”，则可在以（例如）“popcorn” 以及 “corn” 结尾的字符串中获得匹配项。如果在搜索字符串 “\* corn” 中使用空格，则仅获取以 “corn” 结尾的匹配项。

#### \* 通配符

\* 通配符用于替换零个或多个字符，包括空格。此通配符较灵活，可与特定位置的任何字符或任何字符块匹配。

在本例中，结果中列出了以字符串“company”开头的所有值。

在定义的字符后使用 \* 通配符搜索字符串

在定义的字符后使用 \* 通配符搜索字符串

在定义的字符后使用 \* 通配符搜索字符串 ![在几个定义的字符后使用 * 通配符进行搜索。将此通配符放在单词“Company”之后将返回以该单词开头的所有值。实际搜索不包含引号。](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_SearchResults-wildcard-asterisk-example1.png)

这里，结果中列出了所有以字符串 "company" 结尾的值。

在定义的字符前使用 \* 通配符搜索字符串

在定义的字符前使用 \* 通配符搜索字符串

在定义的字符前使用 \* 通配符搜索字符串 ![在多个定义的字符之前使用 * 通配符进行搜索。将此通配符放在单词 'Company' 之前将返回以该单词结尾的所有值。实际搜索不包含引号。](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_SearchResults-wildcard-asterisk-example2.png)

通过在字符串前后放置 \* 通配符，结果将包括包含此字符串的所有值。

在定义的字符之前和之后使用 \* 通配符搜索字符串

在定义的字符之前和之后使用 \* 通配符搜索字符串

在定义的字符之前和之后使用 \* 通配符搜索字符串 ![搜索单词 'Company'，并包含在 * 通配符中。以这种方式配置通配符将返回包含该单词的所有值。实际搜索不包含引号。](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_SearchResults-wildcard-asterisk-example3.png)

#### ? 通配符

该 ？通配符用于代替单个字符，包括空格。此通配符在以下情况下很有用：当您怀疑某字符串可能拼写错误时，当您不确定拼写时，或当字符串包含可能难以正确重现的特殊字符时。

此通配符可以替换字符串中的所有字符，也可以与定义的字符组合使用。

包含 ? 的搜索字符串对于所有字符的通配符

包含 ? 的搜索字符串对于所有字符的通配符

包含 ? 的搜索字符串对于所有字符的通配符 ![使用 ? 搜索适用于所有搜索字符的通配符。在这种情况下，搜索中包含的字符数相同的所有值都列在结果中（例如，'ABC Solution'）。](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_SearchResults-wildcard-question-example1.png)

包含 ? 的搜索字符串三个定义的字符后的通配符

包含 ? 的搜索字符串三个定义的字符后的通配符

包含 ? 的搜索字符串三个定义的字符后的通配符 ![使用 ? 搜索对于前几个字符 'ABC' 之外的所有搜索字符的通配符（实际搜索中不使用引号）。在这种情况下，将列出一个结果：'ABC Solution'。](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_SearchResults-wildcard-question-example2.png)

#### ^ 通配符

^ 通配符用于按字段值中单词开头的一个或多个字符筛选值。此通配符必须与其他通配符结合使用。

在此示例中，搜索字符串 "\*^a\*" 将返回包含以字母“a”开头的字符串的所有值。

使用 ^ 和 \* 通配符搜索字符串

使用 ^ 和 \* 通配符搜索字符串

使用 ^ 和 \* 通配符搜索字符串 ![组合两种不同的通配符类型进行搜索。](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_SearchResults-caret-example.png)