0
我对使用to_tsquery和regconfig参数非常困惑。Postgres to_tsquery - 奇怪的结果
使用Windows上的PostgreSQL 9.0.2。
SELECT name_with_city
FROM company
WHERE name_with_city @@ to_tsquery('simple', 'aires|aires:*')
0 rows retrieved.
..这是正确的结果,但 :
SELECT name_with_city
FROM company
WHERE name_with_city @@ to_tsquery('english', 'aires|aires:*')
"Bel-Air Express Paris"
"Med-Air Miami"
"APS Air Parts Tel Aviv"
"Air Malta Luga"
"Air Nauru Melbourne"
...
542 rows retrieved.
似乎搜索“空气”,而不是“布宜诺斯艾利斯” ..我的理解是,由于在“英语”词典..
但使用'简单'并不总是工作。
SELECT name_with_city
FROM company
WHERE name_with_city @@ to_tsquery('simple', 'harms|harms:*')
0 rows retrieved.
这是不对的,但
SELECT name_with_city
FROM company
WHERE name_with_city ILIKE 'harms%'
"Harms & Wende Hamburg"
1 rows retrieved.
..是正确的。我不得不使用什么查询呢? 据我所知,我可以使用to_tsquery查找文本列中的部分词语,例如:搜索“tech *”将发出“汉莎技术”和“技术航空”,但不是“Airtech”。
尝试看结果ts_debug http://www.postgresql.org/docs/9.1/static/textsearch-debugging.html – 2011-12-21 21:44:11