Sitecore XPバージョン10.0以降、コンテンツ ツリー検索の挙動が変更されました。アイテムIDまたはパスを検索語句として使用する際、Sitecoreはデータベース(またはSitecoreのキャッシュ)からデータを取得しなくなりました。その代わり、検索インデックスに対するクエリが実行されます。(コンテンツのフル テキスト検索フィールドを使用して)アイテムのすべてのテキスト フィールドに対して検索が実施されるようになったため、以前のSitecore XPバージョンよりも多くの結果が返される可能性があります。
以前の挙動に戻すには、以下の手順を実施してください。
using Sitecore.Diagnostics; namespace Custom.Pipelines.Search { internal class AbortIfDirectHitIsFound { public void Process(SearchArgs args) { Assert.ArgumentNotNull(args, "args"); if (args.Result.Categories.Any(category => category.Name == "Direct Hit")) { args.AbortPipeline(); } } } }
<?xml version="1.0" encoding="utf-8" ?> <configuration xmlns:patch="http://www.sitecore.net/xmlconfig/"> <sitecore> <pipelines> <search> <processor type="Sitecore.Pipelines.Search.IDResolver, Sitecore.Kernel" patch:before="*[1]" /> <processor type="Sitecore.Pipelines.Search.PathResolver, Sitecore.Kernel" patch:after="*[@type='Sitecore.Pipelines.Search.IDResolver, Sitecore.Kernel']" /> <processor type="Custom.Pipelines.Search.AbortIfDirectHitIsFound, Custom.Assembly" patch:before="*[@type='Sitecore.ContentSearch.Client.Pipelines.Search.SearchContentSearchIndex, Sitecore.ContentSearch.Client']" /> </search> </pipelines> </sitecore> </configuration>