Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
9
Help us understand the problem. What is going on with this article?
@mizuchi

Elasticsearch&kuromoji で、kuromoji_part_of_speechを設定するときの注意

More than 5 years have passed since last update.

TokenFilter : kuromoji_part_of_speech
このフィルターは指定された品詞を除外するためのフィルターです。

NOTE:
デフォルトは、lucene-analyzer-kuromoji.jar に含まれる stoptags.txt に設定されている品詞が除外されます。※ 特殊な場合をのぞいてデフォルトのままで良さそうです。
個別に設定するには、次のようにします。

設定サンプル: 助詞-格助詞-一般、助詞-終助詞 を除外

index:
analysis:
filter:
pos_filter:
type: kuromoji_part_of_speech
stoptags: [助詞-格助詞-一般, 助詞-終助詞]
tokenizer:
ja_tokenizer:
type: kuromoji_tokenizer
mode: search
analyzer:
ja:
type: custom
tokenizer: ja_tokenizer
filter: [pos_filter]

という記述を見て、サンプルコードそのまま「stoptags: [助詞-格助詞-一般, 助詞-終助詞]」を設定してしまった人居ませんか?(自社のプロジェクトで居ました)。こうするとデフォルトの除外品詞の設定を上書きしてしまうため、検索結果に微妙なテキストが混入する可能性があります。

今回は、「だ」で検索するとなぜか「だ」を含まずに「な」を含むテキストがヒットしたため判明しました。
用言の活用を終止形に直して格納するフィルタも同時にセットしてあったため、「な」が、助動詞「だ」の連体形「な」として解釈され、インデックスに格納されていたのが原因だったようです。

本来デフォルトのままでよかったところを、「個別に設定する」ためのサンプルを使ってしまったということで。
結論としてはよく読めと。

9
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
mizuchi

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
9
Help us understand the problem. What is going on with this article?