🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Apache Solr

Solrは、全文検索ライブラリである Luceneを用いたオープンソースの検索エンジンサーバです。Javaで記述されており、高い全文検索能力を持ちます。ドキュメントの登録には、XML/JSON/CSVなどを用い、ファセット検索機能も備わっています。

Q&A

解決済

1回答

5610閲覧

Apache Solr シノニムフィルターでユーザ辞書が効かない

c_a

総合スコア42

Apache Solr

Solrは、全文検索ライブラリである Luceneを用いたオープンソースの検索エンジンサーバです。Javaで記述されており、高い全文検索能力を持ちます。ドキュメントの登録には、XML/JSON/CSVなどを用い、ファセット検索機能も備わっています。

0グッド

0クリップ

投稿2017/05/10 12:45

編集2017/05/10 13:41

solr 6.5
を利用しています。

下記のスキーマ設定(managed-schema)のように、フィルターでSynonymFilterFactoryを利用して類義語変換をしようとしています。

(問題)
SynonymFilterFactoryの類義語変換は一応できるんですが、
類義語変換の際に指定しているJapaneseTokenizerFactoryのユーザ辞書(lang/userdict_ja.txt)は効いていないようで、下記のような事が起きてしまいます。

例)
ユーザ辞書に「形態素解析」を登録しています
シノニム辞書(synonyms.txt)に「形態素解析 => kuromoji」を登録しています。

しかし、「形態素解析」と入力しても、「kuromoji」と類義語変換されません。
おそらくフィルターの前の段階(分かち書きの処理)で「形態素」「解析」の2つ分割されているのだと思います。

下記の設定は間違っているのでしょうか?
(もしかして、mode="search"とSynonymFilterFactoryは併用できない?)

[スキーマ設定]

<fieldType name="text_ja" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="false"> <analyzer type="index"> <tokenizer class="solr.JapaneseTokenizerFactory" mode="search" userDictionary="lang/userdict_ja.txt" /> <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" tokenizerFactory="solr.JapaneseTokenizerFactory" userDictionary="lang/userdict_ja.txt"/> ・・以下略・・ </analyzer> <analyzer type="query"> <tokenizer class="solr.JapaneseTokenizerFactory" mode="search" userDictionary="lang/userdict_ja.txt" /> <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" tokenizerFactory="solr.JapaneseTokenizerFactory" userDictionary="lang/userdict_ja.txt"/> ・・以下略・・ </analyzer> </fieldType>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

managed-schemaではなく、schema.xmlに変更したら、同じ記載内容でちゃんと動きました。

schemaの内容をAPI経由で変更したり、solrリロードしなければ反映されない条件も今回は気にしないので、ひとまずschema.xmlで対処としました。

投稿2017/05/11 01:36

c_a

総合スコア42

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問