予期しないワイルドカードの結果

トピック作成者:ks-solruserml-bot (2024/06/18 20:06 投稿)
2
CloseClose

(The bot translated the original post https://lists.apache.org/thread/1skhmp8p7sl74vx762l27honocr113db into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)

こんにちは皆さん、

私たちは予期しないワイルドカードの結果について気付いています。例えば、次のクエリ

text:"witch*"

はwitchやwitchesにはマッチしますが、witchcraftにはマッチしません。witchcraftにもマッチすることを期待しています。この問題はフィールド定義にあるかもしれません。

<fieldType name="text_en" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_en.txt"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.EnglishPossessiveFilterFactory"/>
    <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
    <filter class="solr.PorterStemFilterFactory"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_en.txt"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.EnglishPossessiveFilterFactory"/>
    <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
    <filter class="solr.PorterStemFilterFactory"/>
  </analyzer>
</fieldType>

何かアドバイスをいただける方がいらっしゃいますか。

よろしくお願いします。

Matt

返信投稿者:ks-solruserml-bot (2024/06/18 20:06 投稿)

こちらは特定の用語を分析器がどのように処理しているかを理解するための素晴らしいツールです: https://solr.apache.org/guide/8_8/analysis-screen.html

このツールを使用すると、witchcraftがインデックスにどのように追加されたかを確認できます。

Joel Bernstein
http://joelsolr.blogspot.com/

返信投稿者:ks-solruserml-bot (2024/06/18 20:06 投稿)

問題はクエリ文字列の周りにある二重引用符だと思います。代わりにtext:witch*で検索してみてください。

二重引用符で囲まれていると、*が構文文字(ワイルドカード)ではなくテキストとして扱われるようです。Solr管理画面でこのクエリを実行し、"debugQuery"ボックスをチェックすることで確認できます。

これにより、*文字があなたのフィールドタイプによってインデックスされないため、実際には単に 'witch' を検索していることになります。

Porterステマーは、'witch' と 'witches' を 'witch' としてインデックスしますが、'witchcraft' は 'witchcraft' としてインデックスします。したがって、'witch' を検索すると、'witch' と 'witches' の元のテキストに一致しますが、'witchcraft' には一致しません。

Andy

トピックへ返信するには、ログインが必要です。

KandaSearch

Copyright © 2006-2024 RONDHUIT Co, Ltd. All Rights Reserved.

投稿の削除

この投稿を削除します。よろしいですか?