3

個人的なプロジェクトのためにRedisから ElasticSearch に移行したので、マスターの助けが必要です。基本的な要件は次のとおりです。

  1. インデックスには、Artist、Title、Year などのフィールドを持つ Album タイプの POCO が含まれます
  2. ユーザーが「2」などの検索語を入力すると、上記のフィールドに検索語が含まれるアルバムを取得する必要があります
  3. 「2 States」などのアルバム タイトル、「2 Pac」などのアーティスト、「2014,1992..etc」の年と一致する必要があります。

コードは期待どおりに動作していますが、パフォーマンスに影響を与えると思われるワイルド文字を使用しています。コードは以下のとおりです。

var results = Client.Search<Album>(body =>
    body.Query(query =>
        query.QueryString(qs =>
            qs.OnFieldsWithBoost(d => d
                .Add(f => f.AlbumName.ToLowerInvariant(), 5.0)
                .Add(f => f.AlbumTitle.ToLowerInvariant(), 2.0)
                )
                .Query(String.Format("{0}*", searchText))
            )
        )
        .Take(100)
    );

クエリを改善するための提案はありますか?

4

1 に答える 1