Azure Cognitive SearchのIndex Schema JSONをCSVで見たくなる

Posted by johtani on Wednesday, December 22, 2021

目次

Azure Cognitive Searchのスキーマの確認をするときに、Azureのポータルでは次のようにフィールドの一覧として見ることができます。

ただ、実際のインデックス定義はJSON形式でやり取りする形になっています(JSONの例:Create Index | Microsoft Docs)。 上記のスクリーンショットのようにフィールド数が少ない場合はそれほど気にならないのですが、フィールド数が大きくなると一覧で見たくなることがあります。 また、ポータルを自分で確認できない場合にJSONファイルを受け取って確認することもあります。 こういう時は、Excel(CSV)って便利ですよね?

ということで、サクッと確認するときには、次のようなjqコマンドをWSL2上で利用して、CSVに変換して確認しています。

echo "Name", "Type", "Searchable", "Facetable", "Filterable", "Retrievable", "Sortable", "Analyzer", "IndexAnalyzer", "SearchAnalyzer" > index_schema.csv
cat index_schema.json | jq -r '.fields[]|[.name, .type, .searchable, .facetable, .filterable, .retrievable, .sortable, .analyzer, .indexAnalyzer, .searchAnalyzer]|@csv' >> index_schema.csv

例えばこんな感じになります(上記のポータルのスクショとは別のスキーマですが。。。)。

どんなフィールドオプションが利用されているか?などをExcelで開いてフィルターなどを活用してチェックするのには便利かなと。 jqコマンドをもっとうまく使うと、ヘッダ行ももっとスマートに出せるかもしれないんですが。。。

ちなみに、上記のコマンドでは残念ながらEdm.ComplexType(参考: 複合データ型をモデル化する方法 - Azure Cognitive Search | Microsoft Docs)には対応していません。 必要になった時に考えるかな。。。


comments powered by Disqus