---
title: "nullまたはempty文字列のクエリ"
slug: "queries-for-null-or-empty-strings"
abstract: "コードやSitecore UIからヌルまたは空の文字列値を検索できるようにフィールドを設定しましょう。"
---
# nullまたはempty文字列のクエリ

分析データの性質上、時にはnullや空の文字列値のクエリを実行したいことがあります。

Sitecore LINQ層とインデックス層の両方で、物理的な値のEMPTYVALUEとNULLVALUEを格納することでこれをサポートしています。SitecoreこれをLINQ層で変換するため、通常通りLINQクエリを書くだけで済みます。

FieldMapで空文字列とnullサポートを希望するフィールドを指定する必要があります。空文字列やnullはインデックスに保存すべきではありません。スペースを無駄にするためです。

しかし、場合によってはこれを行う必要があります。例えば、性別を指定していないすべての顧客をユーザーが検索し、その顧客に連絡して確認できるようにしたい場合です。これを可能にするためには、FieldMapを設定してGenderフィールドに空文字列を保存する必要があります。

nullValueパラメータやemptyStringパラメータにカスタム値を使用することも可能です。唯一の制限は、アナライザを通過した後に値が単一の項を生成する必要があることです。

実際のフィールド値と混同されないユニークな置換トークンを使うのが良いアイデアです。

## Solrで空文字列やnullを保存するためにFieldMapの設定

Solrの場合は、<fieldNames hint="raw:AddFieldByFieldName">セクションのApp\_Config\\Include\\Sitecore.ContentSearch.Solr.Indexes.configファイルでこれを行います。

例えば、性別フィールドが空の項目を検索できるようにする場合:

<fieldType fieldName="gender" returnType="text" nullValue="NULLVALUE" emptyString="EMPTYVALUE"/>
## 空文字列を検索するためのコードの使用

上記の構成を実装した後、次のクエリを実行すると、"" をEMPTYVALUEに、nullをNULLVALUEにマッピングします:

return context.GetQueryable<Contact>().Where(i => i.Gender == “”).Take(10).ToList();

## 空文字列を探すためのSitecore UIの使用

空文字列を格納するフィールドを設定した後、ユーザーは置換トークンを値として使ってSitecore UIから空文字列やnull値を検索できます。

例えば、上記の構成を実装した後、**Search**欄に「gender: EMPTYVALUE」を入力することで**、空の性別**フィールドのアイテムを見つけることができます。

![Search for an empty string](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/103/sitecore-experience-manager/images/search_for_empty_field.png)