ИСТИНА |
Войти в систему Регистрация |
|
ИСТИНА ИНХС РАН |
||
Full-Text Search ( FTS ) is a search for the documents, which satisfy query and, optionally, return them in some order. Most usual case is to find documents containing all query terms and return them in order of their similarity to the query. Notions of query and similarity are very flexible and depend on specific applications. There is a widespread opinion, that built-in full-text search facility in databases is not important, since there are many off-database solutions like Solr, Sphinx or Elastic Search, which are fast and easy managed. Think about document as a result of multi-tables join restricted by arbitrary filters and it will be clear, that it’s impossible to index such “collection” using off-database engines. Moreover, sometimes it’s important to find a document immediately after uploading it into database. That's why, many databases have built-in full text search engines, which allow to combine text searching and additional metadata, stored in various tables and available through powerful and standard SQL language. We will explain what is a full-text search in database and when it’s necessary to use. We review other text search options available in PostgreSQL and introduce FTS we developed for PostgreSQL. FTS in PostgreSQL was designed to be fully configurable using SQL commands, which allows to develop very sophisticated search engines. We’ll show how to create custom parsers, dictionaries and examples of different FTS configurations. We also will explain the extendability infrastructure in PostgreSQL, what are the GiST and GIN indexing frameworks and how they can be used to speedup full-text search queries. Also, we will talk about a future of FTS in PostgreSQL and our roadmap.