Postgresql полнотекстовый поиск в postgresql - японский, китайский, арабский - PullRequest
9 голосов
/ 23 марта 2010

Я создаю функцию полнотекстового поиска в postgresql для моего текущего проекта. До сих пор он работал нормально со словарями ispell / myspell. Теперь мне нужно добавить поддержку китайского, японского и арабского поиска. С чего мне начать? Для этих языков нет шаблонов или словарей насколько я вижу. Будет ли это работать с конфигурацией pg_catalog.simple?

Ответы [ 3 ]

3 голосов
/ 23 марта 2010

Просто подсказка из руководства : Большой список словарей доступен на OpenOffice Wiki .

2 голосов
/ 29 ноября 2010

Словари не очень помогут вам с китайским языком - вам нужно обратиться к токенизму NGRAM ...

1 голос
/ 11 января 2016

Аналогичное решение для ссылки на stackoverflow.com: Как реализовать полнотекстовый поиск на китайском языке в PostgreSQL? .

Несмотря на это, я хотел бы предоставить решение ниже подробно на основе моего опыта и решения в Интернете. Я использую оба инструмента SCWS и zhparser в качестве решения китайского полнотекстового поиска в postgres.

20160131 Обновление:
Вы должны проверить, установлен ли у вас postgresql-server-devel- {номер версии}, потому что мы будем использовать функцию pgxs для его создания в postgresql.

Step1 : установить SCWS.
Примечательно, что - префикс = / usr / local / scws следует за . / Configure . Не только ./configure ниже в 4-й строке.

wget http://www.xunsearch.com/scws/down/scws-1.2.2.tar.bz2
tar xvjf scws-1.2.2.tar.bz2
cd scws-1.2.2
./configure --prefix=/usr/local/scws 
make
make install

Чтобы проверить, успешно ли он установлен, введите следующую команду:

ls -al /usr/local/scws/lib/libscws.la


Step2 : установить zhparser

git clone https://github.com/amutu/zhparser.git
cd zhparser
SCWS_HOME=/usr/local/scws/include make && make install

20160131 Обновление: Если вы используете Mac OS X Yosemite, указанное выше значение SCWS_HOME будет таким же. Но если вы используете Ubuntu 14.04 LTS, измените значение SCWS_HOME на / usr / local / scws .

Step3 : настройка нового расширения с помощью zhparser в Postres
Step3.1 : Войдите в свою базу данных postgres через терминал / командную строку

psql yourdatabasename

Step3.2 : Создать расширение в Postgres. Вы можете указать, какое имя словаря вы хотите.

CREATE EXTENSION zhparser;
CREATE TEXT SEARCH CONFIGURATION dictionarynameyouwant (PARSER = zhparser);
ALTER TEXT SEARCH CONFIGURATION dictionarynameyouwant ADD MAPPING FOR n,v,a,i,e,l WITH simple;


Если вы выполните описанные выше шаги, вы можете использовать функцию полнотекстового поиска Postgres в китайских / китайских словах.

Дополнительный шаг (не обязательный) в Rails для использования гема pg_search: Step4 . Настройте имя словаря в: словарь атрибут: tsearch в app/models/yourmodel.rb

class YourOwnClass < ActiveRecord::Base
    ...
    include PgSearch
    pg_search_scope :functionnameyoulike, :against => [columnsyoulike1, columnsyoulike2, ...,etc], :using => { :tsearch => {:dictionary => "dictionary name you just specified in creating a extension in postgres", blah blah blah, ..., etc} }
end

Ссылка:
1. Руководство по установке SCWS
2. Zhparser@github.com
3. Francs 'Post - Postgres полнотекстовый поиск на китайском языке с помощью zhparser и SCWS
4. Сообщение Rails365.net - полнотекстовый поиск Postgres на китайском языке с помощью гема pg_search с помощью zhparser
5. My Post на xuite.net - Сделать так, чтобы Postgres поддерживал полнотекстовый поиск на китайском / китайском

...