2

当社の Web サイトでは、Lucene クエリを使用して検索結果を取得しています。問題は、正しい結果のサブセットをランダムに取得していることです。通常はすべて問題ありません。しかし、検索条件の調整、並べ替え順序の変更などを行っていると、突然結果のサブセットが表示されます (結果が 0 の場合もあります)。並べ替え順序を再度変更すると、再び正しい結果が得られ、問題が再び発生することはなくなる可能性があります。

誰かがこの問題を経験し、これを引き起こしている可能性のあるアイデアを持っていますか? インデックスが破損している可能性がありますか、それともインデックスの負荷が高い可能性がありますか?

Lucene.Net 2.9.4.1 を使用しています。これは Sitecore.NET 6.6.0 (rev. 130404) プロジェクトです。私たちのインデックスには 10000 未満のドキュメントしかありません。

合計結果数を取得するために使用しているコード サンプルは次のとおりです。

        Index index = SearchManager.GetIndex("indexname");

        using (IndexSearchContext searchContext = index.CreateSearchContext())
        {
            Lucene.Net.Search.IndexSearcher searcher = searchContext.Searcher;

            TopScoreDocCollector collector = TopScoreDocCollector.create(1, false);
            searcher.Search(query, collector);
            return collector.GetTotalHits();
        }

過去にもこの奇妙な問題がありました。これは、sitecore が提供するパッチでこれを検出し、Lucene 内部変数をリセットすることで解決されました。これらが関連しているかどうかはわかりません。

4

1 に答える 1