

PostgreSQL + MeCab の全文検索でデータベースのフィールドを検索しようとしています。そこで、あることに気がつきました。

  * `大阪市生野区` を `大阪` で検索するとヒットします。
  * `大阪市生野区` を `大阪市` で検索するとヒットしません。

実験した SQL とその結果です。

[code]

    dd=> select to_tsquery('大阪') @@ to_tsvector('japanese'::regconfig, '大阪市生野区');
     ?column?
    ----------
     t
    (1 行)
    
    
    dd=> select to_tsquery('大阪市') @@ to_tsvector('japanese'::regconfig, '大阪市生野区');
     ?column?
    ----------
     f
    (1 行)
    
    
    dd=> select ja_wakachi('大阪市生野区');
       ja_wakachi
    -----------------
     大阪 市 生野 区
    (1 行)
    
[/code]

MeCab が 大阪市生野区 を `大阪` \+ `市` \+ `生野` \+ `区` と単語を分解するので `大阪市` ではヒットしないのだと思いますが…

この点を考慮するための技術的な方策は存在しますでしょうか。


CC BY-SA 4.0
2018-10-31T13:18:15.260
49829
2018-10-31T13:18:15.260
10036
question
postgresql mecab
PostgreSQL + MeCab 全文検索での単語区切りについて