開発Blog

IM-ContentsSearchでの「あいまい検索」

投稿日:

最近、IM-ContentsSearchの導入事例が増えてきており、以下のようなご質問を受けることが多くなって来ました。

Q:IM-ContentsSearchで「あいまい検索」は可能でしょうか。

例)
1. 全角カタカナ⇔半角カタカナ
2. 全角英数⇔半角英数
3. 英大文字⇔英小文字
4. 表記揺れ
(ⅰ) ユーザ、ユーザー
(ⅱ) ブ・ヴ、ヂ・ジ
(ⅲ) ヰ、ゑ、いすゞ
5. 同義語

--- 以下回答 ---

IM-ContentsSearchの標準設定では実現できませんが、Solrに設定されている
テキストフィールド(text_ngramやtext_morph)をカスタマイズする事で、一部の機能が実現可能になります。

  1. 全角カタカナ⇔半角カタカナ
  2. 全角英数⇔半角英数

IM-ContentsSearch Ver.7.1では実現できません。
IM-ContentsSearch Ver.7.2をご利用の場合は、MappingCharFilterFactoryを利用することで実現可能です。
このFilterは単純にテキストを置換するだけのものなので、それぞれの変換ルールを設定ファイルを定義する必要があります。また、「表記揺れ」や「同義語」に対応するためには、形態素解析を利用する必要があります。

基本的には、すべて全角に変換

半角→全角

ア=>ア
ガ=>ガ
プ=>プ

全角→半角

A=>A

記号→全角カナ

㌔=>キロ
㌘=>グラム

  1. 英大文字⇔英小文字
    LowerCaseFilterFactoryを利用することで実現可能です。
    MappingCharFilterFactoryの後に定義して下さい。

  2. 表記揺れ
    (ⅰ) ユーザ、ユーザー
    PatternReplaceFilterFactoryを利用することで実現可能です。このFilterは正規表現を用いてトークンを置換する事が可能です。
    pattenの定義に例えば、4文字目以降の最後の「ー」を削除するような正規表現を記述することで対応して下さい。

(ⅱ) ブ・ヴ、ヂ・ジ
先述のMappingCharFilterFactoryで実現可能です。

(ⅲ) ヰ、ゑ、いすゞ
ヰ・ゑに関しては先述のMappingCharFilterFactoryで実現可能です。
いすゞに関しては繰り返し文字を判定することは出来ませんが、5.の同音異義語と同様に辞書に登録することで特定の単語であれば対応可能です。

  1. 同義語
    SynonymFilterFactoryを利用することで実現可能です。
    同義語の定義はテキストファイルに設定する必要があります。

詳しくは、Apache Solr公式のWikiページ(英語)をご覧下さい。
http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters

※ 各機能の導入バージョンにご注意下さい。製品とバージョンの対応は以下になります。
IM-ContentsSearch Ver.7.1 => solr 1.3
IM-ContentsSearch Ver.7.2 => solr 1.4.1

以上、ご参考にしてください。

-開発Blog
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

intra-mart Advent Calendar 2013 第14日:IMBoxを抜いてAccel Platformをインストールする方法

この記事は、intra-mart Advent Calendar 2013 第14日の記事です。 別の記事を考えていたのですが、昨日だけで、この内容を3回も聞かれたので、意外と皆さんお困りだと思います …

no image

intra-mart Advent Calendar 2013 第17日:Warファイル作成時の実行環境の違いについて

この記事は、intra-mart Advent Calendar 2013 第17日の記事です。 IM-JugglingでWarファイルを作成する際、以下の画面で、実行環境という項目があり、選択するよ …

no image

intra-martのLDAP接続機能について

※下記内容は、過去のintra-mart(Ver4.3以前)に関する内容です。最新のintra-martでは、異なる情報であることがありますので、ご注意ください。 intra-martはver2.1よ …

no image

e Builder Application ProducerでDB設計♪

こんにちは、開発本部の江本です。 私は現在、e Builder Application Producer の開発をやってます。 e Builder の便利な機能やTips、今後の機能強化などについてブ …

no image

iAPへアクセスするURLが複数ある場合のベースURLの設定方法

ここでは、ベースURL をリクエスト情報を基に切り替えるための手順を BaseUrlProvider のサンプル実装、Webサーバとの連携例と共に紹介します。 製品標準の設定では、テナント一つにつき、 …

まだデータがありません。

RSSRSSRSSRSS