本頁面中的部分或全部資訊可能不適用於 Trusted Cloud by S3NS。
使用文字分析器
CREATE SEARCH INDEX
DDL 陳述式、SEARCH
函式和 TEXT_ANALYZE
函式 支援進階文字分析器設定選項。瞭解 BigQuery 的文字分析器及其選項,有助您改善搜尋體驗。
本文件將概略說明 BigQuery 提供的各種文字分析器及其設定選項,並提供文字分析器如何與 BigQuery 中的搜尋搭配運作。如要進一步瞭解文字分析器語法,請參閱「文字分析」。
文字分析器
BigQuery 支援下列文字分析器:
NO_OP_ANALYZER
LOG_ANALYZER
PATTERN_ANALYZER
NO_OP_ANALYZER
如果您有預先處理過的資料,且想精確比對,請使用 NO_OP_ANALYZER
。系統不會對文字進行符號化或標準化處理。由於這個分析器不會執行符記化或標準化,因此不接受任何設定。如要進一步瞭解 NO_OP_ANALYZER
,請參閱 NO_OP_ANALYZER
。
LOG_ANALYZER
LOG_ANALYZER
會以以下方式修改資料:
PATTERN_ANALYZER
PATTERN_ANALYZER
文字分析器會使用規則運算式從文字中擷取符記。PATTERN_ANALYZER
使用的規則運算式引擎和語法為 RE2。PATTERN_ANALYZER
會按照以下順序將模式切割成符號:
- 會在字串中找出與模式相符的第一個子字串 (從左側開始)。這是要納入輸出內容的符記。
- 它會移除輸入字串中的所有內容,直到找到步驟 1 中的子字串為止。
- 這個程序會重複執行,直到字串為空為止。
下表列出 PATTERN_ANALYZER
符記擷取的範例:
模式 |
輸入文字 |
輸出內容詞元 |
ab |
ababab |
|
ab |
abacad |
|
[a-z]{2} |
abacad |
|
aaa |
aaaaa |
|
[a-z]/ |
a/b/c/d/e |
|
/[^/]+/ |
aa/bb/cc |
|
[0-9]+ |
abc |
|
(?:/?)[a-z] |
/abc |
|
(?:/)[a-z] |
/abc |
|
(?:[0-9]abc){3}(?:[a-z]000){2} |
7abc7abc7abcx000y000 |
|
「.+」 |
「cats」和「dogs」 |
請注意,使用貪婪量詞 + 會讓系統比對文字中可能最長的字串,導致「cats」和「dogs」會在文字中擷取為符記。 |
「.+?」 |
「cats」和「dogs」 |
請注意,使用惰性量詞 +? 會讓正規表示式與文字中可能最短的字串相符,導致「cats」和「dogs」會在文字中分別擷取為 2 個不同的符記。 |
使用 PATTERN_ANALYZER
文字分析器,您就能在搭配 SEARCH
函式 使用時,進一步控管從文字擷取的符記。下表顯示不同模式和結果如何產生不同的 SEARCH
結果:
模式 |
查詢 |
文字 |
文字中的符記 |
SEARCH(text, query) |
說明 |
abc |
abcdef |
abcghi |
|
TRUE |
['abcghi'] 中的「'abc'」 |
cd[a-z] |
abcdef |
abcghi |
|
FALSE |
['abcghi'] 中的「cde」 |
[a-z]/ |
a/b/ |
a/b/c/d/ |
|
TRUE |
'a/' in ['a/', 'b/', 'c/', 'd/'] AND 'b/' in ['a/', 'b/', 'c/', 'd/'] |
/[^/]+/ |
aa/bb/ |
aa/bb/cc/ |
|
TRUE |
['/bb/'] 中的 '/bb/' |
/[^/]+/ |
bb |
aa/bb/cc/ |
|
錯誤 |
查詢字詞中找不到相符項目 |
[0-9]+ |
abc |
abc123 |
|
錯誤 |
查詢字詞中找不到相符項目 |
[0-9]+ |
`abc` |
abc123 |
|
錯誤 |
查詢字詞中找不到相符的項目
將反斜線視為反斜線,而非特殊字元。 |
[a-z][a-z0-9]*@google\.com |
我的電子郵件地址:test@google.com |
test@google.com |
|
TRUE |
'test@google.com' 中的 'test@google.com' |
abc |
abc\ abc |
abc |
|
TRUE |
在 ['abc']中使用 'abc'
請注意,由於空格已遭轉義,因此在搜尋查詢剖析器剖析後,'abc abc' 就會成為單一子查詢(ie)。 |
(?i)(?:Abc) (不正規化) |
aBcd |
Abc |
|
FALSE |
['Abc'] 中的'aBc' |
(?i)(?:Abc)
normalization:
lower_case = true |
aBcd |
Abc |
|
TRUE |
'abc' in ['abc'] |
(?:/?)abc |
bc/abc |
/abc/abc/ |
|
TRUE |
'/abc' in ['/abc'] |
(?:/?)abc |
abc |
d/abc |
|
FALSE |
['/abc'] 中的「abc」 |
「.+」 |
「cats」 |
「cats」和「dogs」 |
|
FALSE |
在 ['"cats" 和 "dogs"]中使用 '"cats"'
請注意,使用貪婪量詞 + 會讓規則運算式與文字中可能最長的字串比對,導致系統將「cats」和「dogs」擷取為文字中的符記。 |
「.+?」 |
「cats」 |
「cats」和「dogs」 |
|
TRUE |
'"cats"' in ['"cats"', '"dogs"]
請注意,使用惰性量詞 +? 會讓規則運算式比對文字中可能最短的字串,導致 '"cats"'、'"dogs"' 會在文字中擷取為 2 個個別的符記。 |
範例
以下範例說明如何使用文字分析和自訂選項,建立搜尋索引、擷取符記,並傳回搜尋結果。
LOG_ANALYZER
搭配 NFKC ICU 正規化和停用字
以下範例會使用 NFKC ICU 規範和停用字詞,設定 LOG_ANALYZER
選項。這個範例假設已填入資料的資料表如下:
CREATE TABLE dataset.data_table(
text_data STRING
);
如要使用 NFKC ICU 規範化和停用字詞清單建立搜尋索引,請在 CREATE
SEARCH INDEX
DDL 陳述式的 analyzer_options
選項中建立 JSON 格式的字串。如需使用 LOG_ANALYZER
建立搜尋索引時可用的完整選項清單,請參閱 LOG_ANALYZER
。在本例中,停用字詞為 "the", "of", "and", "for"
。
CREATE OR REPLACE SEARCH INDEX `my_index` ON `dataset.data_table`(ALL COLUMNS) OPTIONS(
analyzer='PATTERN_ANALYZER',
analyzer_options= '''{
"token_filters": [
{
"normalizer": {
"mode": "ICU_NORMALIZE",
"icu_normalize_mode": "NFKC",
"icu_case_folding": true
}
},
{ "stop_words": ["the", "of", "and", "for"] }
]
}''');
以上述範例為例,下表說明 text_data
的各種值的符記擷取方式。請注意,本文件中的雙問號字元 (⁇) 已以斜體顯示,以便區分兩個問號 (??):
資料文字 |
索引符記 |
說明 |
The Quick Brown Fox |
["quick", "brown", "fox"] |
LOG_ANALYZER 權杖化會產生權杖 [「The」, 「Quick」, 「Brown」, 「Fox」]。
接著,ICU 會使用 icu_case_folding = true 將符號轉換為小寫,產生 ["the", "quick", "brown", "fox"]
最後,停用字詞篩選器會從清單中移除「the」。 |
Ⓠ快速 Ⓑ瀏覽 Ⓕ盒 |
["quick", "brown", "fox"] |
LOG_ANALYZER 符記產生符記 ["The", "Ⓠuick", "Ⓑrown", "Ⓕox"]。
接著,使用 icu_case_folding = true 將符號轉為小寫的 NFKC ICU 規範化程序,產生 ["the", "quick", "brown", "fox"]
最後,停用字詞篩選器會從清單中移除「the」。 |
Ⓠuick⁇Ⓕox |
["quick??fox"] |
LOG_ANALYZER 符記產生符記 [「The」,「Ⓠuick⁇Ⓕox」]。
接著,使用 icu_case_folding = true 將符號轉為小寫的 NFKC ICU 正規化功能,產生 ["quick??fox"]。請注意,雙問號的 Unicode 已規格化為 2 個問號 ASCII 字元。
最後,由於篩選器清單中沒有任何符記,因此停用字詞篩選器不會執行任何操作。 |
搜尋索引已建立完成,您可以使用 SEARCH
函式,以搜尋索引中指定的相同分析器設定搜尋資料表。請注意,如果 SEARCH
函式中的分析器設定與搜尋索引的設定不符,系統就不會使用搜尋索引。請使用下列查詢:
SELECT
SEARCH(
analyzer => 'LOG_ANALYZER',
analyzer_options => '''{
"token_filters": [
{
"normalizer": {
"mode": "ICU_NORMALIZE",
"icu_normalize_mode": "NFKC",
"icu_case_folding": true
}
},
{
"stop_words": ["the", "of", "and", "for"]
}
]
}''')
更改下列內容:
下表列出不同搜尋字詞和 search_query
的不同值,以及對應的結果:
text_data |
search_query |
結果 |
說明 |
The Quick Brown Fox |
"Ⓠuick" |
TRUE |
從文字中擷取的符記最終清單為 ["quick", "brown", "fox"]。
從文字查詢中擷取的最終符記清單為 ["quick"]。
清單查詢權杖可在文字權杖中找到。 |
Ⓠ快速 Ⓑ瀏覽 Ⓕ盒 |
"quick" |
TRUE |
從文字中擷取的符記最終清單為 ["quick", "brown", "fox"]。
從文字查詢中擷取的最終符記清單為 ["quick"]。
清單查詢權杖可在文字權杖中找到。 |
Ⓠuick⁇Ⓕox |
"quick" |
FALSE |
從文字中擷取的符記最終清單為 ["quick??fox"]。
從文字查詢中擷取的最終符記清單為 ["quick"]。
「quick」不在文字的符記清單中。 |
Ⓠuick⁇Ⓕox |
"quick⁇fox" |
TRUE |
從文字中擷取的符記最終清單為 ["quick??fox"]。
從文字查詢中擷取的最終符記清單為 ["quick??fox"]。
「quick??fox」是文字中的符記清單。 |
Ⓠuick⁇Ⓕox |
"`quick⁇fox`" |
FALSE |
在 LOG_ANALYZER 中,反引號需要與文字完全相符。 |
PATTERN_ANALYZER
:針對含有停用字的 IPv4 搜尋
以下範例會設定 PATTERN_ANALYZER
文字分析器,以便搜尋特定模式,同時篩除特定停用字詞。在這個範例中,模式會比對 IPv4 位址,並忽略 localhost 值 (127.0.0.1
)。
本範例假設下表已填入資料:
CREATE TABLE dataset.data_table(
text_data STRING
);
如要建立搜尋索引擎索引、pattern
選項和停用字詞清單,請在 CREATE SEARCH
INDEX
DDL 陳述式的 analyzer_options
選項中建立 JSON 格式的字串。如需使用 PATTERN_ANALYZER
建立搜尋索引時可用的完整選項清單,請參閱 PATTERN_ANALYZER
。在本例中,停用字詞是本機位址 127.0.0.1
。
CREATE SEARCH INDEX my_index
ON dataset.data_table(text_data)
OPTIONS (analyzer = 'PATTERN_ANALYZER', analyzer_options = '''{
"patterns": [
"(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)[.]){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"
],
"token_filters": [
{
"stop_words": [
"127.0.0.1"
]
}
]
}'''
);
使用含有 analyzer_options
的規則運算式時,請在開頭加上三個 \
符號,以便正確轉義含有 \
符號的規則運算式,例如 \d
或 \b
。
下表說明 text_data
的各種值的符記化選項。
資料文字 |
索引符記 |
說明 |
abc192.168.1.1def 172.217.20.142 |
["192.168.1.1", "172.217.20.142"] |
即使位址和文字之間沒有空格,IPv4 模式也會擷取 IPv4 位址。 |
104.24.12.10abc 127.0.0.1 |
["104.24.12.10"] |
「127.0.0.1」會遭到篩除,因為它在停用字詞清單中。 |
搜尋索引已建立完成,您可以使用 SEARCH
函式,根據 analyzer_options
中指定的權杖化搜尋資料表。使用下列查詢:
SELECT
SEARCH(dataset.data_table.text_data
"search_data",
analyzer => 'PATTERN_ANALYZER',
analyzer_options => '''{
"patterns": [
"(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)[.]){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"
],
"token_filters": [
{
"stop_words": [
"127.0.0.1"
]
}
]
}'''
);
更改下列內容:
下表列出不同搜尋字詞和 search_query
的不同值,以及對應的結果:
text_data |
search_query |
結果 |
說明 |
128.0.0.2 |
「127.0.0.1」 |
錯誤 |
查詢中沒有搜尋符記。
查詢會經過文字分析器,該分析器會篩除「127.0.0.1」符記。 |
abc192.168.1.1def 172.217.20.142 |
「192.168.1.1abc」 |
TRUE |
從查詢中擷取的符記清單為 ["192.168.1.1"]。
從文字中擷取的符記清單為 ["192.168.1.1", "172.217.20.142"]。 |
abc192.168.1.1def 172.217.20.142 |
「`192.168.1.1`」 |
TRUE |
從查詢中擷取的符記清單為 ["192.168.1.1"]。
從文字中擷取的符記清單為 ["192.168.1.1", "172.217.20.142"]。
請注意,系統會將反引號視為 PATTERN_ANALYZER 的一般字元。 |
後續步驟
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-08-17 (世界標準時間)。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的資訊","missingTheInformationINeed","thumb-down"],["過於複雜/步驟過多","tooComplicatedTooManySteps","thumb-down"],["過時","outOfDate","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["示例/程式碼問題","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2025-08-17 (世界標準時間)。"],[[["\u003cp\u003eBigQuery offers text analyzers like \u003ccode\u003eNO_OP_ANALYZER\u003c/code\u003e, \u003ccode\u003eLOG_ANALYZER\u003c/code\u003e, and \u003ccode\u003ePATTERN_ANALYZER\u003c/code\u003e to enhance text search capabilities within the platform.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eNO_OP_ANALYZER\u003c/code\u003e is used for pre-processed data and performs no tokenization or normalization.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eLOG_ANALYZER\u003c/code\u003e converts text to lowercase, keeps ASCII values greater than 127, and splits text into tokens using specified delimiters, with options to configure delimiters and token filters.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003ePATTERN_ANALYZER\u003c/code\u003e extracts tokens from text based on regular expressions and allows fine-grained control over token extraction when used with the \u003ccode\u003eSEARCH\u003c/code\u003e function, with examples of patterns, text, and token extractions.\u003c/p\u003e\n"],["\u003cp\u003eYou can use the \u003ccode\u003eSEARCH\u003c/code\u003e function along with the \u003ccode\u003eCREATE SEARCH INDEX\u003c/code\u003e DDL statement to perform searches based on the rules setup by the analyzers, along with options to customize tokenization and normalization, or include stop words.\u003c/p\u003e\n"]]],[],null,["# Work with text analyzers\n========================\n\nThe [`CREATE SEARCH INDEX` DDL\nstatement](/bigquery/docs/reference/standard-sql/data-definition-language#create_search_index_statement),\n[`SEARCH` function](/bigquery/docs/reference/standard-sql/search_functions), and\n[`TEXT_ANALYZE`\nfunction](/bigquery/docs/reference/standard-sql/text-analysis-functions#text_analyze)\nsupport advanced text analyzer configuration options. Understanding\nBigQuery's text analyzers and their options lets you refine your search\nexperience.\n\nThis document provides an overview of the different text analyzers available in\nBigQuery and their configuration options, as well as examples of\nhow text analyzers work with [search](/bigquery/docs/search) in\nBigQuery. For more information about text analyzer syntax, see\n[Text analysis](/bigquery/docs/reference/standard-sql/text-analysis).\n\nText analyzers\n--------------\n\nBigQuery supports the following text analyzers:\n\n- `NO_OP_ANALYZER`\n- `LOG_ANALYZER`\n- `PATTERN_ANALYZER`\n\n### `NO_OP_ANALYZER`\n\nUse the `NO_OP_ANALYZER` when you have pre-processed data that you want to match\nexactly. There is no tokenization or normalization applied to the text. Since\nthis analyzer does not perform tokenization or normalization, it accepts no\nconfiguration. For more information about\n`NO_OP_ANALYZER`, see\n[`NO_OP_ANALYZER`](/bigquery/docs/reference/standard-sql/text-analysis#no_op_analyzer).\n\n### `LOG_ANALYZER`\n\nThe `LOG_ANALYZER` modifies data in the following ways:\n\n- Text is made lowercase.\n- ASCII values greater than 127 are kept as is.\n\n- Text is split into individual terms called *tokens* by the following\n delimiters:\n\n [ ] \u003c \u003e ( ) { } | ! ; , ' \" * & ? + / : = @ . - $ % \\ _ \\n \\r \\s \\t %21 %26\n %2526 %3B %3b %7C %7c %20 %2B %2b %3D %3d %2520 %5D %5d %5B %5b %3A %3a %0A\n %0a %2C %2c %28 %29\n\n If you don't want to use the default delimiters, you can specify the\n delimiters you want to use as text analyzer options. `LOG_ANALYZER` lets you\n configure specific delimiters and token filters for more control over your\n search results. For more information about the\n specific configuration options available when using the `LOG_ANALYZER`, see\n [`delimiters` analyzer\n option](/bigquery/docs/reference/standard-sql/text-analysis#log_analyzer_options)\n and [`token_filters` analyzer\n option](/bigquery/docs/reference/standard-sql/text-analysis#token_filters_option).\n\n### `PATTERN_ANALYZER`\n\nThe `PATTERN_ANALYZER` text analyzer extracts tokens from text using a regular\nexpression. The regular expression engine and syntax used with\n`PATTERN_ANALYZER` is [RE2](https://github.com/google/re2/). `PATTERN_ANALYZER`\ntokenizes patterns in the following order:\n\n1. It finds the first substring that matches the pattern (from the left) in the string. This is a token to be included in the output.\n2. It removes everything from the input string until the end of the substring found in step 1.\n3. It repeats the process until the string is empty.\n\nThe following table provides examples of `PATTERN_ANALYZER` token extraction:\n\nUsing the `PATTERN_ANALYZER` text analyzer gives you more control over the\ntokens extracted from a text when used with the [`SEARCH`\nfunction](/bigquery/docs/reference/standard-sql/search_functions). The following\ntable shows how different patterns and results result in different `SEARCH`\nresults:\n\nExamples\n--------\n\nThe following examples demonstrates the use of text analysis\nwith customization options to create search indexes, extract tokens, and return\nsearch results.\n\n### `LOG_ANALYZER` with NFKC ICU normalization and stop words\n\nThe following example configures `LOG_ANALYZER` options with [NFKC ICU](https://en.wikipedia.org/wiki/Unicode_equivalence)\nnormalization and stop words. The example assumes the following data table with\ndata already populated: \n\n```googlesql\nCREATE TABLE dataset.data_table(\n text_data STRING\n);\n```\n\nTo create a search index with NFKC ICU normalization and a list of stop words,\ncreate a JSON-formatted string in the `analyzer_options` option of the [`CREATE\nSEARCH INDEX` DDL\nstatement](/bigquery/docs/reference/standard-sql/data-definition-language#create_search_index_statement).\nFor a complete list of options available in when creating a search index with\nthe `LOG_ANALYZER`, see\n[`LOG_ANALYZER`](/bigquery/docs/reference/standard-sql/text-analysis#log_analyzer).\nFor this example, our stop words are `\"the\", \"of\", \"and\", \"for\"`. \n\n```googlesql\nCREATE OR REPLACE SEARCH INDEX `my_index` ON `dataset.data_table`(ALL COLUMNS) OPTIONS(\n analyzer='PATTERN_ANALYZER',\n analyzer_options= '''{\n \"token_filters\": [\n {\n \"normalizer\": {\n \"mode\": \"ICU_NORMALIZE\",\n \"icu_normalize_mode\": \"NFKC\",\n \"icu_case_folding\": true\n }\n },\n { \"stop_words\": [\"the\", \"of\", \"and\", \"for\"] }\n ]\n }''');\n```\n\nGiven the previous example, the following table describes the token extraction\nfor various values of `text_data`. Note that in this document the double\nquestion mark character (*⁇*) has been italicized to differentiate between\ntwo question marks (??):\n\nNow that the search index has been created, you can use the [`SEARCH`\nfunction](/bigquery/docs/reference/standard-sql/search_functions) to search the\ntable using the same analyzer configurations specified in the search index. Note\nthat if the analyzer configurations in the `SEARCH` function don't match those\nof the search index, the search index won't be used. Use the following query: \n\n```googlesql\nSELECT\n SEARCH(\n analyzer =\u003e 'LOG_ANALYZER',\n analyzer_options =\u003e '''{\n \"token_filters\": [\n {\n \"normalizer\": {\n \"mode\": \"ICU_NORMALIZE\",\n \"icu_normalize_mode\": \"NFKC\",\n \"icu_case_folding\": true\n }\n },\n {\n \"stop_words\": [\"the\", \"of\", \"and\", \"for\"]\n }\n ]\n }''')\n```\n\nReplace the following:\n\n- \u003cvar translate=\"no\"\u003e\u003ccode translate=\"no\" dir=\"ltr\"\u003esearch_query\u003c/code\u003e\u003c/var\u003e: The text you want to search for.\n\nThe following\ntable demonstrates various results based on different search text and different\nvalues of `search_query`:\n\n### `PATTERN_ANALYZER` for IPv4 search with stop words\n\nThe following example configures the `PATTERN_ANALYZER` text analyzer to search for a specific pattern while filtering certain stop words. In this example, the pattern matches an IPv4 address and ignores the localhost value (`127.0.0.1`).\n\nThis example assumes that the following table is populated with data: \n\n```googlesql\nCREATE TABLE dataset.data_table(\n text_data STRING\n);\n```\n\nTo create a search index the `pattern` option and a list of stop words, create a\nJSON-formatted string in the `analyzer_options` option of the [`CREATE SEARCH\nINDEX` DDL\nstatement](/bigquery/docs/reference/standard-sql/data-definition-language#create_search_index_statement).\nFor a complete list of options available in when creating a search index with\nthe `PATTERN_ANALYZER`, see\n[`PATTERN_ANALYZER`](/bigquery/docs/reference/standard-sql/text-analysis#pattern_analyzer).\nFor this example, our stop words are the localhost address,\n`127.0.0.1`. \n\n```googlesql\nCREATE SEARCH INDEX my_index\nON dataset.data_table(text_data)\nOPTIONS (analyzer = 'PATTERN_ANALYZER', analyzer_options = '''{\n \"patterns\": [\n \"(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)[.]){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\"\n ],\n \"token_filters\": [\n {\n \"stop_words\": [\n \"127.0.0.1\"\n ]\n }\n ]\n}'''\n);\n```\n\nWhen using regular expressions with `analyzer_options`, include three\nleading `\\` symbols to properly escape regular expressions that include a\n`\\` symbol, such as `\\d` or `\\b`.\n\nThe following table describes the tokenization options for various values of `text_data`\n\nNow that the search index has been created, you can use the [`SEARCH`\nfunction](/bigquery/docs/reference/standard-sql/search_functions) to search the\ntable based on the tokenization specified in `analyzer_options`. Use the\nfollowing query: \n\n```googlesql\nSELECT\n SEARCH(dataset.data_table.text_data\n \"\u003cvar translate=\"no\"\u003esearch_data\u003c/var\u003e\",\n analyzer =\u003e 'PATTERN_ANALYZER',\n analyzer_options =\u003e '''{\n \"patterns\": [\n \"(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)[.]){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\"\n ],\n \"token_filters\": [\n {\n \"stop_words\": [\n \"127.0.0.1\"\n ]\n }\n ]\n }'''\n);\n```\n\nReplace the following:\n\n- \u003cvar translate=\"no\"\u003e\u003ccode translate=\"no\" dir=\"ltr\"\u003esearch_query\u003c/code\u003e\u003c/var\u003e: The text you want to search for.\n\nThe following\ntable demonstrates various results based on different search text and different\nvalues of `search_query`:\n\nWhat's next\n-----------\n\n- For an overview of search index use cases, pricing, required permissions, and limitations, see the [Introduction to search in\n BigQuery](/bigquery/docs/search-intro).\n- For information about efficient searching of indexed columns, see [Search with an index](/bigquery/docs/search)."]]