2017-02-01 1 views
0

문자열 열이있는 테이블이 있습니다. 정지 단어를 제거하고 싶습니다. 내가 좋아 보이는이 쿼리를 사용했습니다.postgresql의 문자열 열에서 내 정지 단어를 제거하는 방법

SELECT to_tsvector('english',colName)from tblName order by colName asc; 
  1. 내가이 정지 PostgreSQL을의 단어와 어떤 경우에 쿼리 found.Then 내가 내 자신의 파일로 교체 할 수 있습니다보고 싶어

  2. 테이블

    에 열을 업데이트하지 않습니다. 나는 또한이 주소를 확인하고 정지 단어 목록 파일을 찾을 수 없습니다. 실제로 주소는 존재하지 않습니다.

    $SHAREDIR/tsearch_data/english.stop 
    
+0

@ GurV : 편집 해 주셔서 감사합니다 – Raha1986

+0

데이터 디렉토리가 무엇입니까? 'show data_directory' –

+0

질문이 명확하지 않습니다. 테이블의 데이터를 변경 하시겠습니까? 그것은'UPDATE'로 끝납니다. 영어 정지 단어는'pg_config --sharedir '에서 찾을 수있는 * sharedir *의 하위 디렉토리'tsearch_data'에있는 데이터베이스 컴퓨터에서 찾을 수 있습니다. –

답변

1

그렇게 할 기능이 없습니다.

당신은 (독일어이 예에서) 같은 것을 사용할 수 있습니다 :이 단어를 중지 제거뿐만 아니라 줄기와 비 단어

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

을하고 어순에 대해 상관하지 않는다, 그래서 나는 의심 그 결과는 당신을 행복하게 만들 것입니다.

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) 

을하지만 그 쿼리 문자열에 중지 단어의 목록을 포함해야합니다 : 그가 적합하지 않은 경우

,이 같은 regexp_replace을 사용할 수 있습니다. 향상된 버전은 테이블에 정지 단어를 저장합니다.

+0

사실, 특정 단어가 내 사용자에게 어떻게 분포되어 있는지 확인하고 싶습니다. 그래서 정확한 단어를 알아야합니다. 그러나 단어들을 사용하는 다른 방법, 많은 문자들, 약어, 그리고 그것들을 없애야하는 이상한 직원들이 있습니다. 나는 단어를 분리하고 모든 말도 안되는 문자와 단어를 제거해야합니다. – Raha1986

+0

불행히도, 단어의 형태소 분석 및 셔플은 내가 데이터로 수행하고자하는 마지막 작업입니다. 어쩌면 정규식을 사용하여 색인 생성을 제거 할 수 있습니다. – Raha1986

+0

비록 내가이 정규식을 ': \ d'라는 쿼리에서 사용할 수 있습니까? – Raha1986

관련 문제