2

プロジェクトの Azure Search を評価しています。MSDN の記事には、フラット化されたスキーマ構造しかありません。以下は、私が見ているシナリオの例です。

以下は、「質問」クラスのリストを参照する「プロジェクト」クラスです。「質問」には独自のフィールドのセットがあります

public class Project
    {
        public Guid Id
        {
            get;
            set;
        }

        public string Owner
        {
            get;
            set;
        }

        public string Title
        {
            get;
            set;
        }

        public List<Question> QuestionList
        {
            get;
            set;
        }

        public bool Disable
        {
            get;
            set;
        }

}

public class Question
    {
        public Guid Id { get; set; }

        public string Title { get; set; }

        public string Description { get; set; }
    }

以下は、プロジェクトのインデックス スキーマです。

  • Id - Edm.String
  • 所有者 - Edm.String
  • タイトル - Edm.String
  • QuestionList - Collection(Edm.String)

質問

  • QuestionList の各項目に階層データを指定することはできますか?
  • 「質問」の「タイトル」内だけを検索することはできますか?
  • 私が見る唯一の可能性は、「質問」のインデックスを個別に作成して使用することです

関連する MSDN で見られる唯一のポイントは以下の段落であり、あまり意味がありません

ファセット ナビゲーションのレベル

前述のように、階層内でのファセットのネストは直接サポートされていません。初期設定では、ファセット ナビゲーションは 1 レベルのフィルターのみをサポートします。ただし、回避策は存在します。階層ごとに 1 つのエントリ ポイントを持つ Collection(Edm.String) の階層ファセット構造をエンコードできます。この回避策の実装はこの記事の範囲を超えていますが、OData by Example でコレクションについて読むことができます。

4

1 に答える 1

2

最初の質問では、Azure Search は階層データ型を許可していません。検索するには、コレクションとして作成した QuestionList フィールドに対して行ったように、データをフラット化する必要があります。このコレクション内のアイテムに基づいて結果をフィルター処理する方法も尋ねている場合は、$filter=QuestionList/any(t: t eq 'Question1') ( https://msdn.microsoft.com /en-us/library/azure/dn798921.aspx )

2 番目の質問は、「タイトル」または「質問」だけを検索することに興味があったと思いますが、そうですか。これには、SearchFields パラメーター ( https://msdn.microsoft.com/en-us/library/azure/dn798927.aspx )を使用できます。

リアム

于 2015-02-13T21:14:17.860 に答える