スコア

トピック作成者:ks-solruserml-bot (2024/07/31 21:32 投稿)
2
CloseClose

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

こんにちは、皆さん。

スコアリングに関する問題に直面しており、どのように解決すれば良いのか完全には分かりません。
以下のように、マルチバリューのフィールドに一連の仕事記録が含まれています。すべてのデータは以下のように連結されています。
問題は、スコアリングによって大きな記録がペナルティを受け、少ない仕事を持つ小さな記録が先に表示されてしまうことです。
omitNorms=trueを使用すると、同じスコアが得られました。

質問です。
トークンが多い記録に対して、より高いスコアを得るために何か変更できることはありますか?

クエリ:

((SmartSearchS:"main director [$CU] [$PRJ] "~100)^5 OR
((SmartSearchS:(main) AND (SmartSearchS:(director*))) OR
((SmartSearchS:("main director")))^3))
<doc>
  <str name="PersonIDDoc">-730007</str>
  <arr name="JobSearch">
    <str>[$CU] [$PRJ] main director Ucona corporation Illinois Midwest(USA) United States of America North America</str>
  </arr>
</doc>
<doc>
  <str name="PersonIDDoc">-730008</str>
  <arr name="JobSearch">
    <str>[$CU] [$PRJ] main director Ucona corporation Illinois Midwest(USA) United States of America North America</str>
    <str>[$CU] [$PRJ] main director Ucona corporation Illinois Midwest(USA) United States of America North America</str>
  </arr>
</doc>

これがフィールドとタイプです。

<field name="JobSearch" type="JobSearchField" indexed="true" stored="true" multiValued="true"/>
<fieldType name="JobSearchField" class="solr.TextField" positionIncrementGap="500">
  <analyzer type="index">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.WordDelimiterGraphFilterFactory" generateWordParts="0" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="1" splitOnCaseChange="0" preserveOriginal="0" protected="protwords.txt"/>
    <filter class="solr.ASCIIFoldingFilterFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.SynonymGraphFilterFactory" synonyms="positionsynonyms.txt" ignoreCase="true" expand="true"/>
    <filter class="solr.SynonymGraphFilterFactory" synonyms="locationsynonyms.txt" ignoreCase="true" expand="true"/>
    <filter class="solr.FlattenGraphFilterFactory"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.WordDelimiterGraphFilterFactory" generateWordParts="0" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="1" splitOnCaseChange="0" preserveOriginal="0" protected="protwords.txt"/>
    <filter class="solr.ASCIIFoldingFilterFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
  <similarity class="com.spencerstuart.similarities.SpencerStuartNoSimilarity"></similarity>
</fieldType>

ありがとうございます。
Sergio Maroto

返信投稿者:ks-solruserml-bot (2024/07/31 21:33 投稿)

こんにちは、Sergio

スキーマの抜粋にカスタムの類似度クラスがあることに気づきました。この問題にどう関連しているのか分かりません。
debugQuery=true を使用して、マッチしたものの説明を確認し、期待通りにスコアリングされているかどうかチェックできますか?

--
よろしくお願いします、
Mikhail Khludnev

返信投稿者:ks-solruserml-bot (2024/07/31 21:33 投稿)

こんにちは、Mikhail

その通りです。その類似度クラスを削除し、omitNorms=trueを追加することで、期待通りの動作が得られました。

よろしくお願いします。
Sergio

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

KandaSearch

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

投稿の削除

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