Solrでドメイン名をインデックスする

Solrでドメイン名のようなものを対象にするとき、どんなAnalyzerの設定が良いか考えてみると、PathHierarchyTokenizerFactoryを使って以下のような感じが良いのかなっと。

<fieldType name="domain_name" class="solr.TextField">
    <analyzer type="index">
        <tokenizer class="solr.PathHierarchyTokenizerFactory" delimiter="." reverse="true"/>
    </analyzer>
    <analyzer type="query">
        <tokenizer class="solr.KeywordTokenizerFactory" />
    </analyzer>
</fieldType>

Fessではサンプルで定義されていたurlフィールド型をsiteに使っていたのだけど、どうもこれだといまいちな感じなので上記の設定に変更しようと思う。これにすると、www.codelibs.orgをインデックスると

www.codelibs.org
codelibs.org
org

が登録される。検索クエリの時はそのまま行くのでうまくマッチすればサブドメインとか含めてヒットするだろう。

コメントを残す

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