PhoneticSearch を構成するには

トピック作成者:ks-solruserml-bot (2024/06/04 22:43 投稿)
7
CloseClose

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

こんにちは、

フォネティック検索をフィールド定義に追加する方法は見つけましたね。素晴らしいですね。しかし、この設定をどのように構成すればよいのでしょうか?
例えば、"Testkudne"で検索すると、"Testkunde"という値を持つドキュメントが見つかるようにするにはどうすればよいでしょうか?また、"Andre"で検索すると、"André"も見つかるようにするにはどうすればよいでしょうか?
以下は私のインデックスとクエリに使用されている定義です:

<dynamicField name="*_txt_de" type="text_de" indexed="true" stored="true"/>
<fieldType name="text_de" class="solr.TextField" positionIncrementGap="100">
  <analyzer>
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_de.txt" format="snowball"/>
    <filter class="solr.GermanNormalizationFilterFactory"/>
    <filter class="solr.BeiderMorseFilterFactory" nameType="GENERIC" ruleType="APPROX" concat="true" languageSet="auto"/>
  </analyzer>
</fieldType>

Christian

返信投稿者:ks-solruserml-bot (2024/06/04 22:44 投稿)

Hi Christian,

あなたが示した例は、音韻的一致のターゲットの使用ケースではありません。
あなたが望んでいるのは、スペルチェッカーです。
https://solr.apache.org/guide/8_4/spell-checking.html。

音韻的一致の問題は部分的にあなたの要件を満たすかもしれませんが、それは主に、入力したものと「聞こえが似ている」結果を持つクエリ向けです。
つまり、Testkudneという言葉に対してTestkundeを見つけることはできません。

よろしくお願いします。

返信投稿者:ks-solruserml-bot (2024/06/04 22:44 投稿)

André/Andreの場合、ASCII折りたたみフィルターが役立ちます。

https://solr.apache.org/guide/8_9/filter-descriptions.html#ascii-folding-filter

このフィルターは「タイプライターのウムラウト」には変換しませんので、それらに対して文字置換フィルターが必要になります。これにより、äはaeに、öはoeに、üはueに変換されます。

wunder
Walter Underwood
wunder@wunderwood.org
http://observer.wunderwood.org/ (私のブログ)

返信投稿者:ks-solruserml-bot (2024/06/04 22:44 投稿)

もし「タイプライターのウムラウト」もサポートが必要な場合は、Unicode正規化を検討してください。

https://solr.apache.org/guide/8_9/filter-descriptions.html#icu-folding-filter

Thomas

返信投稿者:ks-solruserml-bot (2024/06/04 22:44 投稿)

みなさん、こんにちは。

皆さん、本当にありがとうございます!
顧客からさらにいくつかの例があります。
皆さんのフィードバックを正しく解釈しているのでしょうか。すべての例はスペルチェッカーまたはASCIIフォールディングを使用して解決できるということですか?

Mayr vs. Meier,
Moét vs. Moet,
Cuvée vs. Cuvee,
Strasse vs. Straße,
Kudne vs. Kunde

愚問ですみません。
Christian

返信投稿者:ks-solruserml-bot (2024/06/04 22:44 投稿)

Christianさん、

ドイツ語は私の母国語ではありませんが、Mayr vs. Meierの場合、音韻的マッチングが適していると考えています。SpellCheckerを寛容に設定してもキャッチできますが、おそらく最善の選択肢ではないでしょう。

また、特定のGermanNormalizationFilterもあります。これは、techproductsの例でtext_de fieldTypeで使用されています。

https://lucene.apache.org/core/8_9_0/analyzers-common/org/apache/lucene/analysis/de/GermanNormalizationFilterFactory.html

Thomas

返信投稿者:ks-solruserml-bot (2024/06/04 22:45 投稿)

こんにちは。

Solrの管理画面で「クエリビュー」を実行して、次のクエリを実行しました:
Request-Handler (qt): /select
q: {!item f=CompanyName}muller

その結果、「Müller」と「Mueller」の連絡先が見つかりました。
私のC#プログラムではSolrNetライブラリを使用して、次のクエリを作成しました:
[画像]

なぜ「Mueller」だけが返されていて、「Müller」が返されないのでしょうか?
私のクエリを変更する必要があるのでしょうか?
よろしくお願いします。
Christian

返信投稿者:ks-solruserml-bot (2024/06/04 22:45 投稿)

おそらく/select以外のエンドポイントを使用しているのかもしれませんか?

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

KandaSearch

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

投稿の削除

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