ルセーヌからソルへの移動
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Lucene検索エンジンのサポートは、Sitecore 9.3以降では終了しています。Solr検索エンジンは使用できます。SolrはSitecoreインストール時にデフォルトでインストールおよび設定されています。
このトピックでは、LuceneからSolrに移行した際に見られる違いについて説明しています。
LINQ API
LINQ APIを使ったクエリでは、LuceneとSolrでわずかに異なる結果が得られます。
StartsWith
StartsWith LINQメソッドのSolr実装は各単語の先頭の値にマッチし、Luceneはフィールド全体の値にマッチします。
LINQクエリ
ソルの成績
ルーセンの結果
x.Name.StartsWith("world")
世界
世界は素晴らしい
こんにちは、世界
世界
世界は素晴らしい
終わり
SolrのEndsWith LINQメソッドの実装は各単語の末尾の値にマッチし、Luceneはフィールド全体の値にマッチします。
LINQクエリ
ソルの成績
ルーセンの結果
x.Name.EndsWith("world")
世界
こんにちは、世界
世界は素晴らしい
世界
こんにちは、世界
大文字に細かい文字列比較
Solrがプレーンテキストフィールドタイプ(例えば 文字列 や テキスト)を検索する場合、通常は大文字小文字を区別します。例外は、_fullpathや _nameのような一部のシステムフィールドです。
LINQクエリ
ソルの成績
ルーセンの結果
.Where(x => x.TemplateName == "sample item")
「サンプルアイテム」テンプレートに基づくアイテムは返品されません
「サンプルアイテム」テンプレートに基づく商品返品
アイテムレベルブースト
アイテムレベルのブーストは、Solr検索プロバイダー(Sitecore 9.1.0以降)でサポートされていません。Solrのリリースノートには、Solr 7以降ではインデックス時間ブーストはサポートされていないと記載されています。詳細はhttps://lucene.apache.org/solr/guide/7_2/major-changes-in-solr-7.htmlをご覧ください。つまり、9.1.0以降Sitecoreでは、アイテムブースティングやフィールドブースティングの両方でインデックスタイムブーストはサポートされていません。
また、Sitecore Solr互換性表もご参照ください。
構成の違い
Solr検索プロバイダーとLucene検索プロバイダーの設定方法にはいくつかの違いがあります。組み込みのSitecoreフィールドでは移行は容易ですが、自社のフィールドを追加する場合は違いを認識しておく必要があります。
フィールドの種類
SolrはLuceneよりも多くのフィールドタイプをサポートしています。Luceneではフィールドは文字列または数値のいずれかですが、Solrはsolrのようなより具体的な型をサポートしています 。DatePointField、solr。floatPointField、そしてsolr。TextField。
例えば、チェックボックスフィールドがあり、ブール変換器( Bool.ToString() はインデックスに送られる値)がない場合、このフィールドをファセットクエリで使うと、Luceneでは0と1がカテゴリ名として表示されますが、Solrではfalseとtrueが得られます。
公式のSolrドキュメントにはさらに詳しい情報があります。
Solrスキーマ
Luceneではインデックスに追加する際にフィールド設定を制御できますが、Solrではドキュメントを追加する前にスキーマの提供が必要です。
SitecoreコントロールパネルにはPopulate Solr管理スキーマ ツールがあり、Solrで動作させるために必要なスキーマをアップロードできますSitecore。インデックス作成を始める前に、このツールを少なくとも一度は使う必要があります。Sitecoreインストールフレームワークを使う場合は、展開時にスキームが入力されます。
したがって、すべてのスキーマ関連の設定はフィールドマップ構成から削除されています。フィールドマップですべてのフィールドやフィールドタイプに対して値を設定する必要はありません。代わりに、フィールドマップ内のフィールドやフィールドタイプをSolrスキーマ内のフィールドや動的フィールドのいずれかにマッチさせます。
フィールドマップのフィールド/フィールドタイプ構成のreturnType属性を、Solrフィールドマップで定義されたtypeMatchノードのいずれかに設定します。

Solrの設定方法についての詳細が載った ウォークスルー があります。
Solrにおけるフィールド名の翻訳
各typeMatchノードは、Solrスキーマで定義された動的フィールドの一つに対応し、フィールド名にパターンを適用します。fieldNameFormat属性がこのパターンを設定します。インデックス付け時には、フィールド名はパターンに従ってフォーマットされます。例えば、上記の例では、titleフィールドはtitle_s、createdフィールドはfieldNamFormat属性の値に基づいて、created_tdtとしてフォーマットされています。
インデックス作成時。Solrはフィールド名とスキーマで定義されたフィールドを照合します。もし一致を見つけたら、Solrはそのフィールドの構成を適用します。数学的に見つからなければ、Solrはフィールド名を動的フィールドパターンと照合します。

この例では、動的フィールドが一致しています。これらのフィールドはそれぞれ 文字列 型とpdate型であるため、Solrはこれらの型の構成を追加されたフィールドに適用します。

通常、Populate Solr管理スキーマ ツールが提供する動的フィールドは必要なすべてのフィールド構成です。しかし非常に稀な場合、既存の構成とは異なるフィールドや動的フィールドをスキーマに追加する必要がある場合があります。その一つの方法はSolrでスキーマを直接変更することですが、後でスキーマポピュレートツールを実行すると変更が失われることに注意してください。代わりに、Solrスキーマのカスタマイズを行う新しいプロセッサを注入してcontentSearch.PopulateSolrSchemaパイプラインを変更することをお勧めします。
Solrフィールド名解決を使うことで 、さらに詳しい情報が得られます。
!重要一般的な推奨としては、typeMatch構成が十分に柔軟でない場合のみスキーマを変更することです。