2017-02-01 14 views
0

У меня есть таблица со столбцом строки. Я хочу удалить слова остановки. Я использовал этот запрос, который кажется ОК.Как удалить мои слова остановки из столбца строки в postgresql

SELECT to_tsvector('english',colName)from tblName order by colName asc; 
  1. не обновляет столбец в таблице

  2. Я хочу видеть стоп-слова Postgresql и то, что found.Then запроса в случае, если я могу заменить его с моим собственным файлом. Я также проверил этот адрес и не смог найти файл списка стоп-слов. На самом деле адрес не существует.

    $SHAREDIR/tsearch_data/english.stop 
    
+0

@GurV: спасибо за редактирование – Raha1986

+0

что такое данные dir? 'show data_directory' –

+0

Вопрос не ясен. Вы хотите изменить данные в таблице? Это делается с помощью 'UPDATE'. Английские слова остановки находятся на машине базы данных в подкаталоге 'tsearch_data' * sharedir *, который можно найти с помощью' pg_config --sharedir'. –

ответ

1

Там нет функции, чтобы сделать это.

Вы могли бы использовать что-то вроде этого (в данном примере на немецком языке):

SELECT array_to_string(tsvector_to_array(to_tsvector('Hallo, Bill und Susi!')), ' '); 
array_to_string 
----------------- 
bill hallo susi 
(1 row) 

Это убирает стоп-слов, но и стволы и не-слова, и он не заботится о порядке слов, так что я сомневаюсь что результат сделает вас счастливыми.

Если это не соответствует законопроект, вы можете использовать regexp_replace так:

SELECT regexp_replace('Bill and Susi, hand over or die!', '\y(and|or|if)\y', '', 'g'); 
     regexp_replace 
----------------------------- 
Bill Susi, hand over die! 
(1 row) 

Но это требует, чтобы вы включили свой список стоп-слов в строке запроса. Улучшенная версия сохранит стоп-слова в таблице.

+0

На самом деле, я хочу узнать, как определенные слова распространяются среди моих пользователей. поэтому мне нужно знать точные слова. но есть разные способы использования слов, много символов, аббревиатуры и странного персонала, которые я должен избавиться от них. Мне нужно разделить слова и удалить все бессмысленные символы и слова. – Raha1986

+0

К сожалению, сужение и перетасовка слов - это последнее, что я хочу делать с моими данными. возможно, я могу использовать регулярное выражение, чтобы избавиться от индексации. – Raha1986

+0

хотя у меня есть probelm, чтобы использовать это регулярное выражение в запросе ': \ d'? – Raha1986

 Смежные вопросы

  • Нет связанных вопросов^_^