Когда полнотекстовый поиск Postgres будет поддерживать совпадение фраз и совпадений? - PullRequest
4 голосов
/ 26 мая 2010

Начиная с Postgres 8.4, база данных fts не поддерживает точное совпадение фраз, а также не поддерживает сопоставление близости, если дано 2 условия. Например, нет способа сообщить Postgres, что он сопоставляется с контентом, в котором есть слово # 1, которое находится в непосредственной близости от слова # 2. Кто-нибудь знает план Postgres и, возможно, какая версия будет поддерживать фразу и близость?

Ответы [ 2 ]

4 голосов
/ 29 июля 2014

Текстовый поиск в PostgreSQL 9.6 теперь поддерживает фразы

select
  *
from (values
  ('i heart new york'),
  ('i hate york new')
) docs(body)
where
  to_tsvector(body) @@ phraseto_tsquery('new york')

(1 row retrieved)

или по расстоянию между словами:

-- a distance of exactly 2 "hops" between "quick" and "fox"
select
  *
from (values
  ('the quick brown fox'),
  ('quick brown cute fox')
) docs(body)
where
  to_tsvector(body) @@ to_tsquery('quick <2> fox') 

(1 row retrieved)
2 голосов
/ 26 мая 2010

http://linuxgazette.net/164/sephton.html

<snip>

Поиск векторов

Как превратить содержимое документа в массив лексем, используя парсер и словари? Как можно соответствовать критерию поиска по основному тексту? PostgreSQL предоставляет ряд функций для этого. Первое, на что мы посмотрим, - это to_tsvector ().

tsvector - это внутренний тип данных, содержащий массив лексем с информацией о положении. Позиции лексемы используются при поиске, чтобы ранжировать результат поиска на основе близости и другой информации. Можно управлять ранжированием, помечая различные части, составляющие содержимое документа поиска, например, заголовок, текст и аннотация могут быть по-разному взвешены во время поиска , помечая эти секции по-разному. Метки разделов, достаточно просто A, B, C & D, ассоциируются с tsvector во время его создания, но модификаторы веса, связанные с этими метками, могут контролироваться после факта.

</snip>

Для поиска по фразе см. Здесь.

На сайте Postgresql нет дорожной карты. Вместо этого вы переходите на страницу Open Issues. На данный момент на этой странице не упоминается поиск по фразе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...