2016-11-29 4 views
1

私はフォーラムを持っていて、私はスレッドトーナメントと呼ばれるトピックを持っています。データベースに格納されます。誰かがアクセスしたい場合、URLはwww.someforum.com/topics/game-of-thronesのようになります。postgresqlにハイフネーション/ハイフネーションのないURL名を格納して検索するにはどうすればよいですか?

検索時にハイフンをスペースで置き換えたり無視したりすることはできますが、スペースとハイフンの両方がある文字列の単語とハイフンの異なる順列間のあいまいさを招きます(例: "Mother-In-Law Issues ")。これをどうすれば処理できますか?

トピックタイトルのURLを含むトピックテーブルに「スラッグ」列を作成し、ユーザーが意図したスペースとハイフンの置換を「タイトル」列に保存すると考えました...

+0

? –

+0

@DuduMarkovitz何もありません。私は、ユーザーが意図したように文字列を格納するだろう。 – Jaigus

+0

@DuduMarkovitz私はURLにtopic-idを配置したくなかったので。私は "武道"を格納すると言うことができます私は実際の文字列ではなく、IDを検索するつもりです。私はハイフンを追加する必要があります。 – Jaigus

答えて

0

私は今あなたがいると思います。
このようなもの(大まかなデモ)はどうですか? - あなたはハイフンに対して持っているかどう

create table url (url_id int primary key,url varchar(1000)); 
insert into url (url_id,url) values (1,'www.someforum.com/topics/game-of-thrones'); 

create table search_term (search_term varchar(1000),url_id int references url(url_id)); 
insert into search_term values ('game of thrones',1),('GOT',1) 

select u.url 

from   search_term  as st 

     join url    as u 

     on  u.url_id  = 
       st.url_id 

where st.search_term = 'GOT' 
; 
関連する問題