検索インデックスでの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>;検索クエリーは大文字と小文字を区別しません。すべてのクエリーは小文字に変換され、同じ結果を返します。たとえば、次の値を検索しても同じ結果が返されます。
name
Name
NAME