官术网_书友最值得收藏!

  • Mastering PostgreSQL 9.6
  • Hans Jurgen Schonig
  • 252字
  • 2021-07-09 19:57:23

Debugging your search

Sometimes it is not quite clear why a query matches a given search string. To debug your query, PostgreSQL offers the ts_debug function. From a user's point of view it can be used just like to_tsvector. It reveals a lot about the inner workings of the FTS infrastructure:

test=# \x 
Expanded display is on.
test=# SELECT * FROM ts_debug('english', 'go to www.postgresql-support.de');
-[ RECORD 1 ]+----------------------------
alias | asciiword
description | Word, all ASCII
token | go
dictionaries | {english_stem}
dictionary | english_stem
lexemes | {go}
-[ RECORD 2 ]+----------------------------
alias | blank
description | Space symbols
token |
dictionaries | {}
dictionary |
lexemes |
-[ RECORD 3 ]+----------------------------
alias | asciiword
description | Word, all ASCII
token | to
dictionaries | {english_stem}
dictionary | english_stem
lexemes | {}
-[ RECORD 4 ]+----------------------------
alias | blank
description | Space symbols
token |
dictionaries | {}
dictionary |
lexemes |
-[ RECORD 5 ]+----------------------------
alias | host
description | Host
token | www.postgresql-support.de
dictionaries | {simple}
dictionary | simple
lexemes | {www.postgresql-support.de}

ts_debug will list every token found and display information about the token. You will see which token was found by the parser, the dictionary used, as well as the type of object. In my example, blanks, words, and hosts have been found. You might also see numbers, e-mail addresses, and a lot more. Depending on the type of string, PostgreSQL will handle things differently. For example, it makes absolutely no sense to stem hostnames and e-mail addresses.

主站蜘蛛池模板: 瑞丽市| 嫩江县| 乐业县| 克山县| 黄陵县| 公安县| 油尖旺区| 祁阳县| 方山县| 威海市| 闵行区| 府谷县| 达尔| 星座| 岳西县| 平度市| 江门市| 汤阴县| 新干县| 临沭县| 泰兴市| 汤阴县| 泉州市| 霍山县| 池州市| 临沂市| 永康市| 临沧市| 章丘市| 昌乐县| 方山县| 布尔津县| 泽普县| 霍城县| 北流市| 岢岚县| 阿坝县| 界首市| 武功县| 通城县| 余江县|