分类:
2008-05-21 15:11:48
文本搜索分析器(分词程序)负责把裸的文档文本分解成记号并且标识每个记号的类型,这里可能的类型集由分析器(分词程序)自身定义。请注意分析器(分词程序)并不修改文本 -- 它只是标识可能的词的边界。因为这个有限的范围,所以应用相关的客户化分析器没有客户化的字典需求那么大。目前,PostgreSQL 只提供了一个内置的分析器,我们发现它可以适用于很广的应用范围。
内置的分析器(分词程序)叫 pg_catalog.default。它包含 23 种记号类型:
我们可以用分析器(分词程序)从同一段文本里生成重叠的记号。比如,一个连接词就会被当做整个词报告,也会被分隔成几个部分报告出来:
SELECT alias, description, token FROM ts_debug('foo-bar-beta1');
alias | description | token
-----------------+------------------------------------------+---------------
numhword | Hyphenated word, letters and digits | foo-bar-beta1
hword_asciipart | Hyphenated word part, all ASCII | foo
blank | Space symbols | -
hword_asciipart | Hyphenated word part, all ASCII | bar
blank | Space symbols | -
hword_numpart | Hyphenated word part, letters and digits | beta1
这个行为是有需要的,因为它允许搜索既可匹配组合词,也可匹配部件词。下面是另外一个指示性的例子:
SELECT alias, description, token FROM ts_debug('');
alias | description | token
----------+---------------+------------------------------
protocol | Protocol head | http://
url | URL | example.com/stuff/index.html
host | Host | example.com
url_path | URL path | /stuff/index.html