CreateSearchIndexおよび関連関数のオプションで,インデックスを作成するコンテンツに対してさまざまなフィールドの扱いを指定するオプションを許可する.
ContentFieldOptions
CreateSearchIndexおよび関連関数のオプションで,インデックスを作成するコンテンツに対してさまざまなフィールドの扱いを指定するオプションを許可する.
詳細
- ContentFieldOptions-><|"name1"->opts1,"name2"->opts2,…|>は,フィールド名 nameiのインデックスに連想 optsiで与えられたオプションを使うように指定する.
- 各 optsi連想で使用可能な項目
-
"BulkRetrievalOptimized" 大量取り出しの最適化のためにフィールドにインデックスを付けるかどうか "CamelCaseMatching" キャメルケースが複数の単語とマッチするかどうか "DeleteStopWords" インデックス付けの前にストップワードを削除するかどうか "IgnoreCase" インデックス付けとマッチングの際に大文字小文字の違いを無視するかどうか "Language" フィールドに何語を想定するか "LengthWeighted" より短いフィールドのマッチの方を多くカウントするかどうか "Searchable" フィールドを検索可能にするかどうか "StemmingMethod" インデックス付けとマッチングのために単語を語幹にするかどうか "Stored" フィールドのリテラルなコンテンツをインデックスに保存するかどうか "Tokenized" インデックスを付ける前にフィールドをトークン化するかどうか "Type" フィールドの全体的なタイプ "Weight" 検索の際のフィールドの重み - よく使われるフィールドには,"Title","Text","String","Date","DateTime","Integer","Real","Boolean"がある.
- フィールドタイプが異なるとデフォルトの重みも異なる.
- "Title"や"Integer" 等のフィールドタイプはデフォルトで保存されるのに対し,"Text"等は保存されない.
- "Title"および"Text"は,"String"あるいは"Date"とは異なり,トークン化されて,デフォルトでストップワードの削除が行われる.
- デフォルトで,すべてのフィールドタイプが検索できる.
- すべてのフィールドタイプがデフォルトで大量取り出しに最適化されているわけではない.
- デフォルトで,長いフィールドのマッチは短いフィールドのマッチほど,最終のスコアにインパクトを与えない.すべてのフィールドタイプのデフォルトであるこの動作を無効にしたければ,"LengthWeighted"をFalseにするとよい.
- "StemmingMethod"のデフォルト値は"Porter"である.代替値として"Kstem"やNoneがある.
- タイプに加えて明示的なオプションが指定されると,明示的なオプションがそのタイプのデフォルトを無効にする.
- All->opts を使って,デフォルトで全タイプに使われるオプション設定を示すことができる.
例題
例 (12)
"Field2"の言語をフランス語(French)に設定して例のインデックスを作る:
index = CreateSearchIndex[{ContentObject[<|"Field1" -> "the dog is good", "Field2" -> "le chien est bon"|>]}, ContentFieldOptions -> <|"Field2" -> <|"Language" -> "French"|>|>];フランス語のストップワードである「le」や「la」は結果のマッチでは無視される:
TextSearch[index, "la chien"]index = CreateSearchIndex[{ContentObject[<|"Field1" -> "the dog is good"|>]}, ContentFieldOptions -> <|"Field1" -> <|"Stored" -> True|>|>];TextSearch[index, "dog", "Field1"]フィールドタイプを"Field2"に設定すると,検索結果の順位を付ける際にこのフィールドにより重みが加えられ,この値がコンテンツオブジェクトとして返される:
index = CreateSearchIndex[{ContentObject[<|"ArticleTitle" -> "The Long Road Ahead"|>]}, ContentFieldOptions -> <|"ArticleTitle" -> <|"Type" -> "Title"|>|>];TextSearch[index, "long road"]大文字小文字の厳密な違いが重要なら,フィールドの"IgnoreCase"をFalseに設定するとよい:
index = CreateSearchIndex[{ContentObject[<|"ProductId" -> "SBcFrX"|>]}, ContentFieldOptions -> <|"ProductId" -> <|"IgnoreCase" -> False|>|>];TextSearch[index, "SBCFrX"][All]望むのであれば,単語以外のコンテンツのために"CamelCaseMatching"を無効にすることができる:
index = CreateSearchIndex[{ContentObject[<|"ProductId" -> "SrdxEldk"|>]}, ContentFieldOptions -> <|"ProductId" -> <|"CamelCaseMatching" -> False|>|>];"CamelCaseMatching"が有効なら次はマッチするだろう:
TextSearch[index, "Srdx Eldk"][All]非単語コンテンツのために語幹にする操作を無効にすることができる:
index = CreateSearchIndex[{ContentObject[<|"ProductId" -> "Alice-Eldk"|>]}, ContentFieldOptions -> <|"ProductId" -> <|"StemmingMethod" -> None|>|>];TextSearch[index, "alic"][All]フィールドの"Weight"を指定するとより高い順位の結果が返される:
index = CreateSearchIndex[{ContentObject[<|"Keyword" -> "apple", "Field2" -> "orange"|>], ContentObject[<|"Keyword" -> "orange", "Field2" -> "apple"|>]}, ContentFieldOptions -> <|"Keyword" -> <|"Weight" -> 10, "Stored" -> True|>|>];"Keyword"フィールド内でマッチすると,そのスコアには重み("Weight")10がかけられる:
TextSearch[index, "apple"][All, "Score"]検索不可能なフィールドは検索することはできないが,保存されている場合は,結果のコンテンツオブジェクトから取り出すことができる:
index = CreateSearchIndex[{ContentObject[<|"Field1" -> "apple", "Field2" -> "one fruit"|>], ContentObject[<|"Field1" -> "apple, orange", "Field2" -> "two fruits"|>]},
ContentFieldOptions -> <|"Field2" -> <|"Stored" -> True, "Searchable" -> False|>|>];TextSearch[index, "fruit"][All]TextSearch[index, "apple"][1, "Field2"]index = CreateSearchIndex[{ContentObject[<|"Title" -> "apple or pear", "Text" -> "eat an apple, or a pear"|>], ContentObject[<|"Title" -> "juices", "Text" -> "is this apple or pear juice?"|>]}, ContentFieldOptions -> <|"Title" -> <|"DeleteStopWords" -> False|>|>];それらのフィールドではストップワードの「or」だけが求まる:
TextSearch[index, "or"][All]デフォルトで,より長いフィールド内のマッチはより短いフィールド内のマッチに比べて,最終スコアに対する影響が小さい:
index = CreateSearchIndex[{ContentObject[<|"Title" -> "doc1", "Text" -> "apple"|>], ContentObject[<|"Title" -> "doc2", "Text" -> "apple orange banana pear"|>]}];TextSearch[index, "apple"][All, {"Title", "Score"}]この動作は"LengthWeighted"をFalseに設定して無効にすることができる:
index = CreateSearchIndex[{ContentObject[<|"Title" -> "doc1", "Text" -> "apple"|>], ContentObject[<|"Title" -> "doc2", "Text" -> "apple orange banana pear"|>]},
ContentFieldOptions -> <|"Text" -> <|"LengthWeighted" -> False|>|>];TextSearch[index, "apple"][All, {"Title", "Score"}]"Tokenized"をFalseに設定して,フィールドの逐語的なマッチを要求する:
index = CreateSearchIndex[{<|"Field1" -> "orange", "Field2" -> "ExactlyThisApple"|>},
ContentFieldOptions -> <|"Field2" -> <|"Tokenized" -> False|>|>];TextSearch[index, SearchQueryString["Field2:ExactlyThisApple"]]["Count"]TextSearch[index, SearchQueryString["ExactlyThisApple"]]["Count"]TextSearch[index, SearchQueryString["Field2:apple"]]["Count"]TextSearch[index, SearchQueryString["Field2:\"Exactly This Apple\""]]["Count"]TextSearch[index, SearchQueryString["Field2:exactlythisapple"]]["Count"]フィールドがドキュメントの重み付けに使用されるときは,"BulkRetrievalOptimized"をTrueに設定するとパフォーマンスが向上する:
docs = Table[
ContentObject[<|"Text" -> StringRiffle[RandomChoice[{"apple", "orange", "pear", "banana"}, RandomInteger[{1000, 2000}]]], "Quality" -> RandomChoice[{"high", "medium", "low"}]|>], {1000}];index1 = CreateSearchIndex[docs,
ContentFieldOptions -> <|"Quality" -> <|"BulkRetrievalOptimized" -> True|>|>];
index2 = CreateSearchIndex[docs,
ContentFieldOptions -> <|"Quality" -> <|"Stored" -> True|>|>];Quantity[First@RepeatedTiming[TextSearch[index1, "apple", DocumentWeightingRules -> {"Quality" -> {"high" -> 2, "medium" -> 1, "low" -> .5}}]] * 1000, "ms"]Quantity[First@RepeatedTiming[TextSearch[index2, "apple", DocumentWeightingRules -> {"Quality" -> {"high" -> 2, "medium" -> 1, "low" -> .5}}]] * 1000, "ms"]テキスト
Wolfram Research (2016), ContentFieldOptions, Wolfram言語関数, https://reference.wolfram.com/language/ref/ContentFieldOptions.html (2017年に更新).
CMS
Wolfram Language. 2016. "ContentFieldOptions." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2017. https://reference.wolfram.com/language/ref/ContentFieldOptions.html.
APA
Wolfram Language. (2016). ContentFieldOptions. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ContentFieldOptions.html
BibTeX
@misc{reference.wolfram_2026_contentfieldoptions, author="Wolfram Research", title="{ContentFieldOptions}", year="2017", howpublished="\url{https://reference.wolfram.com/language/ref/ContentFieldOptions.html}", note=[Accessed: 06-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_contentfieldoptions, organization={Wolfram Research}, title={ContentFieldOptions}, year={2017}, url={https://reference.wolfram.com/language/ref/ContentFieldOptions.html}, note=[Accessed: 06-September-2026]}