検索インデックスでのLowerCaseStrFieldの使用
DataStax Enterprise 6.7.4では、カスタム・フィールド型
LowerCaseStrFieldが導入され、以下の機能を提供します。 - データを小文字に変換し、小文字のデータを
docValuesに正しく格納する。 - クエリー値を小文字に変換する。
注:
LowerCaseStrFieldをテーブルのプライマリ・キーに適用することはできません。また、LowerCaseStrFieldでアナライザーを使用することもできません。DataStaxは、solr.KeywordTokenizerおよびsolr.LowerCaseFilterFactoryでTextFieldを使用しないことを推奨します。生データが予想に反してdocValuesに小文字として保存されていないため、意図しない検索結果が生じる可能性がありました。代わりに、次の例に示すように、カスタムLowerCaseStrField型を使用します。
新しいインデックスのフィールドで
LowerCaseStrFieldを使用するには:CREATE SEARCH INDEX ON <table> WITH COLUMNS *, column { lowerCase : true };このコマンドは、LowerCaseStrFieldフィールドタイプを使用して、columnを持つ検索インデックスを作成します。フィールド型が自動的に追加されます。LowerCaseStrFieldフィールド型を使用して、既存のカラムに新しいフィールドを追加するには:ALTER SEARCH INDEX SCHEMA ON <table> ADD lowerCaseString column;
RELOAD SEARCH INDEX ON <table>;
REBUILD SEARCH INDEX ON <table>;ALTER SEARCHコマンドは、
LowerCaseStrFieldフィールド型が存在しない場合に追加します。LowerCaseStrFieldをプライマリ・キー・カラムに適用する回避策があります。これを行うには、copyField宣言を使用して、プライマリ・キー・フィールド・データをLowerCaseStrField型として定義されている新しいフィールドにコピーします。たとえば、ALTER SEARCH INDEX SCHEMA ON <table> ADD lowerCaseString key_column_copy;
ALTER SEARCH INDEX SCHEMA ON <table> ADD copyField[@source='key_column', @dest='key_column_copy'];
RELOAD SEARCH INDEX ON <table>;
REBUILD SEARCH INDEX ON <table>;検索クエリーは大文字と小文字を区別しません。すべてのクエリーは小文字に変換され、同じ結果を返します。たとえば、次の値を検索しても同じ結果が返されます。
nameNameNAME
