EPrints 2.3技術文書 - アーカイブメタデータの設定


EPrintsメタデータ

はじめに

メタデータはデータに関するデータです。このシステムで言えば、システムが格納するドキュメントに関する情報です

この章では、アーカイブのメタデータの設定法について説明し、GNU EPrintsで使用するメタデータのプロパティについての情報を提供します。

データベース上では、すべてのイープリント・レコードは同じメタデータを持っています。ただし、ユーザインターフェースに表示されるフィールドはその一部であり、イープリントのタイプにより異なります。

アーカイブのメタデータフィールドの変更

メタデータフィールドを追加するには、まず、ArchiveMetadataFieldsConfig.pmを修正し、次に、データベーステーブルを削除し、再作成をしなければなりません。 これによりすべてのデータは破壊されます。データを破壊することなくアーカイブにフィールドを追加したり、変更したりするには、SQLを使用する必要があります。

GNU EPrintsのすべてのタイプのレコードはメタデータを持ちます。すべてのレコードは、システムが必要とする変更することのできないコアフィールド群を持っています。 「eprints」テーブルと「users」テーブルもメタデータフィールドのリストを持っており、各々イープリントとユーザに関する情報を格納するために使用されています。

メタデータタイプの設定に加えて、ArchiveMetadataFieldsConfig.pmには、フィールドにデフォルト値を設定したり、他のフィールドの値を元に(自動的に)特定のフィールドに値を設定したりすることのできる関数があります。

自動設定機能は、複雑な質問に対する簡単な回答を保存することができるので便利です。たとえば、「このレコードはセキュリティレベルがpublicであるドキュメントを持っていますか」という条件でユーザは検索したいと思うかもしれません。 これが単にフィールドとしてレコードに格納されていれば、この条件で検索することは簡単です。

デフォルト設定

バージョン2.3.0におけるメタデータフィールドのデフォルト設定は、機関アーカイブを設定するための良い開始点になるように、EPrints開発者と図書館員が共同で設計しました。 しかし、各アーカイブの要件により、おそらく何らかの変更が必要となるでしょう。

デフォルト値が設定されているフィールドや自動設定されるフィールドもあります。

ユーザ・レコードの「hideemail」フィールドのデフォルト値は「TRUE」です。明示的な許可が与えられない限り、人のメールアドレスを表示したいとは思わないからです。

ユーザ・レコードの「frequency」フィールドは設定されない場合、自動的に「never」が設定されます。 未設定は「never」とほとんど同じことを意味しますが、自動設定すれば「unspecified」と表示されないようになり、より明確にすることができるからです。 「frequency」は編集者にのみ適用されるもので、承認作業が必要な更新情報をどの程度の頻度で受け取るかを指定します。

ドキュメントのデフォルトセキュリティレベルは「public」です。 ドキュメントのデフォルト言語は(ユーザが投稿するドキュメントの言語が何であろうとも)現在のセッションの言語です。 個々のドキュメントが書かれている言語に関心のあるアーカイブでない限り、このフィールドは重要ではありません。

イープリントのデフォルトタイプは「article」です。つまりイープリントは必ずタイプが定義されています。

イープリント・レコードにはいくつかの自動設定フィールドがあります。イープリントのタイプが「monograph」あるいは「thesis」で、「institution」フィールドが設定されていない場合、デフォルトでは何も設定されませんが、プログラム中のコメントをはずすことにより大学名(など)を「institution」に設定することができます。

イープリントのタイプが「patent」の場合、未公開の特許が格納されることはありえないでしょうから、「published」が自動的に設定されます。

イープリントのタイプが「thesis」の場合、学位論文は出版されることはないので、「unpublished」が自動的に設定されます。これが正しくない場合は、この設定を簡単に無効にすることができます。

「effective date」フィールドには、「date of issue」フィールドと同じ値が設定されます。 「date of issue」が設定されていない場合は、「date of submission」の値が設定されます。 両日付とも未設定の場合は、メタデータレコードの日付スタンプが設定されます。 これは、「effective date」フィールドには、このレコードを検索や複写依頼で使用する場合に「もっともふさわしい」日付が設定されることを意味しています。 このフィールドが実際に表示されることはありません。

「full_text_status」フィールドにはフルテキストの状態を示す値が設定されます。設定される値は、 フルテキストがない場合の「none」、フルテキストが利用可能な場合の「public」、フルテキストは利用できるが何らかの方法で制限されている(セキュリティレベルがpublicでない)場合の「restricted」、のいずれかです。

また、「fileinfo」フィールドにドキュメントに関する情報を設定してサイテーションにアイコンで表示するあまり洗練されていない方法も用意されています。


フィールド設定

フィールドは多くのプロパティを持っています。必須のプロパティは「name」と「type」だけです。nameはフィールド名で、システムがこのフィールドを識別するのに使用します。 その他のプロパティは、フィールドのタイプにより異なります。

フィールドを追加する場合は、フレーズファイルに「人間が理解できる」形の名称を追加する必要があります。フィールド名とフィールド表示名を区別することで、フィールド自体を変えることなく記述を変更することが可能になります。 「イープリント」のメタデータに「foo」という名前のフィールドを追加した場合は、フレーズファイルに「eprint_typename_foo」というフレーズを追加しなければなりません。 また、「eprint_typehelp_foo」というフレーズを追加することもできます。これはフィールドの説明でメタデータ入力ページに表示されます。

以下のフィールドタイプがサポートされています。各タイプには固有のプロパティオプションがあります。

(ここで説明していない内部タイプがいつくかありますが、その使用は推奨されません。)


メタデータのタイプ

メタデータには多くのタイプがあり、各タイプは異なる方法で格納・入力・表示・検索されます。

より簡単なタイプを拡張したタイプがあります。たとえば、「year」は「int」を拡張したタイプで、4桁に制限したものです。なお、すべての説明文は異なります。

システムに用意されているタイプを継承して独自のタイプを追加することも理論的には可能ですが、実行する場合は注意が必要です。 独自タイプの作成を考える場合、タイプpagerangeが参考になります。 新しいタイプのためのモジュールは他ではロードできないので、必ずArchiveConfig.pmでuse文を使ってロードするようにしてください。 モジュール名はタイプ名と同じで、先頭文字を大文字にします。 たとえば、フィールドタイプ「latlong」は、モジュールEPrints::MetaField::Latlongで定義されることになります。

メタデータタイプの継承図

int
オプションのプロパティ: digits

正の整数を表します。データベースにはINTとして格納されます。

year
「year」タイプの代わりにいつでも最小粒度の「year」を持つ「date」フィールドを使用することができます。 そうすれば検索においてそのフィールドを整数ではなく日付として扱うことができます。

年を表します。ほとんど「int」と同じ働きをしますが、常に4桁の数字です。データベースにはINTとして格納されます。

longtext
オプションのプロパティ: input_rows, input_cols, search_cols

無限長のテキストフィールドを表します。タイトルや抄録などで使用されます。 1つの値として効率よく検索することができないので、システムは単語を索引化します。 「フリーテキストの索引化」の章を参照してください。MySQLにはTEXTとして格納されます。

date
オプションのプロパティ: min_resolution

日付を表し、たとえば、1969-05-23のように、常にYYYY-MM-DDの形で表現します。データベースにはDATEとして格納されます。

boolean
オプションのプロパティ: input_style

単純な2値論理フィールドで、データベースにはSET( 'TRUE','FALSE' )として格納されます。 メニューやチェックボックス、ラジオボタンとして表示することができます(input_styleの項を参照)。

name
オプションのプロパティ: input_name_cols, search_cols, hide_honourific, hide_lineage, family_first

人(たとえば、著者)の名前を格納するのに使用されます。4つの部分、敬称、名(ギブンネーム)、姓(ファミリーネーム)、リネッジ、に分割されます。 これはあまりにわずらわしいようですが、名に「Reverend(師)」を入れたり、姓に「Junior(ジュニア)」を入れたりするのを防ぎます。 これが嫌な場合は、敬称とリネッジは表示しないようにすることができます(ArchiveConfig.pmを参照)。

混乱を避けるために姓を表すのに「ラストネーム」ではなく、「ファミリーネーム」を使っています。姓を先に表記する国があり、そのような国ではラストネームは、私が「クリスチャンネーム」あるいは「ファーストネーム」と呼ぶものにあたるからです。

名前はデータベースには4つのフィールドに分けて格納されます。たとえば、「supervisor(指導教官)」は、supervisor_honourific、 supervisor_given、supervisor_family、supervisor_lineageの4フィールドに格納されます。各フィールドはVARCHAR(255)です。

set
必須のプロパティ: options

オプションのプロパティ: input_rows, search_rows

限定された数の選択肢の組です。選択肢のリストを指定します。各選択肢はフレーズファイルに追加する必要があります。 データセット「user」のフィールド「bar」の選択肢「foo」のフレーズidは「user_fieldopt_bar_foo」です。

データベースには選択肢のidをVARCHAR(255)として格納します。

text
オプションのプロパティ: input_cols, maxlength, search_cols

単純なテキストフィールドです。一般に255文字以下のアスキー文字列ですが、非アスキー文字の場合は、UTF-8符号化が使用されるので、これより短くなります。

データベースには VARCHAR(255)として格納されます。

secret
「text」と同じですが、入力フィールドは文字の変わりに星印が表示されるパスワード入力フィールドになります。 データベースに書き込まれるだけで、画面上では読むことができません。空値を入れても以前の値は変更されません。

url
「text」と同じですが、表示法と検証法が異なります。

email
「text」と同じですが、表示法と検証法が異なります。

subject
オプションのプロパティ: top, showtop, showall, input_rows, search_rows

階層構造のサブジェクト・ツリーです。一見したところ「set」と同じですが、検索の際、指定したサブジェクトおよびその下位概念のサブジェクトを持つすべてのアイテムにヒットします。 サブジェクトは稼動中のシステムに追加することができます。

サブジェクト・ツリーはid「ROOT」を持つサブジェクトで始まりますが、サブジェクトフィールドはid「subject」を持つサブジェクトの下にあるアイテムのみを表示します。 これは「top」プロパティを使って変更することができ、同じツリーの異なる部分を指す2つのフィールドを持つことができます。

サブジェクトは複数の親を持つことができます。たとえば、生物物理学を同一のサブジェクトとして、物理学生物学の両者の下に表示することができます。

サブジェクトの初期構築についてのさらなる情報は bin/import_subjectsのmanページを参照してください。

複数の「サブジェクト」フィールドを持つことができます。たとえば、サブジェクト・ツリーに互いに無関係な「top」項目を持たせて、主題と部局という2つのサブジェクトフィールドを持つことができます。

EPrints2の新バージョンでは、あるサブジェクト(とその下位)を編集できるユーザを管理者ユーザが制限できる機能を持つ予定です。 この機能により、上の例では、主題の編集者と部局の編集者を別に定義することができるようになります。

pagerange
たとえば、1-44のような、ページの範囲です。現在のところ検索はできません。

データベースにはVARCHAR(255)として格納されます。

datatype
必須のプロパティ: datasetid

オプションのプロパティ: input_rows, search_rows

「set」と同じように機能しますが、選択肢は指定されたデータセットのタイプから得ます。

たとえば、データセットid「user」を指定すると、デフォルトを変更していなければ、選択肢としては「user」、「editor」、「admin」が与えられます。 これらはmetadata-types.xmlで指定したユーザのタイプです。

指定できる選択肢は次の通りです。

user
ユーザのタイプです。

document
ドキュメントのタイプです。

eprint
イープリントのタイプです。

security
ドキュメントのセキュリティレベルです(おそらくあまり使い道はないでしょう)。

language
languages.xmlで指定されているすべての言語です。

arclanguage
このアーカイブでサポートされている言語です。ArchiveConfig.pmで設定します。 データベースにはVARCHAR(255)として格納されます。

langid
内部的に使用されるISO言語IDです。使用することはおそらくないでしょう。CHAR(16)として格納されます。

id
これも内部的に使用されます。hasidプロパティを持つフィールドのID部分です。使用しないでください。 データベースにはVARCHAR(255)として格納されます。

search(EPrintsバージョン2.1以降)
必須のプロパティ: datasetid, fieldnames

オプションのプロパティ: allow_set_order

指定したデータセットに対する保存検索式を表します。検索するフィールドはfieldnameで指定します。

このフィールドタイプは非常に変わったものであり、実際の使用は想定していません。サブスクリプション・データセットにおけるシステムフィールドとして使用するために作成されたものです。

MySQLではTEXTフィールドとして格納されます。

フィールドプロパティ

「ステータス」は「system」、「cosmetic」、「other」のいずれかです。「system」プロパティを変更するには、アーカイブの消去と再作成が必要です。「cosmetic」プロパティはデータの表示にのみ影響を与えるものであり、変更しても問題はありません。「other」プロパティについては個別に説明します。

name
ステータス: system

このプロパティを必須とするもの: すべて

デフォルト: デフォルトはなし

フィールドの名前。小文字のa〜zのみを使用することを強く推奨します。

type
ステータス: system

このプロパティを必須とするもの: すべて

デフォルト: デフォルトはなし

フィールドのタイプ。上で説明したメタデータタイプのうちの1つです。

browse_link
ステータス: cosmetic

このプロパティを設定できるもの: すべて

デフォルト: 未定義

「ブラウズ」ビューのidです。表示の際は、この値から値が示すブラウズへのハイパーリンクになります。

confid
ステータス: cosmetic

内部使用のみです。データセットなしにフィールドが作成された場合にconfidは設定されます。 フレーズidを生成するための偽のデータセットとして使用されます。

datasetid
ステータス: other

このプロパティを必須とするもの: datatype

デフォルト: デフォルトはなし

どのデータセットタイプがこのフィールドの選択肢であるかを設定するために使用されます。

稼動システムでこれを変更すると混乱を引き起こすかもしれません。古いデータセットが存在するかもしれないからです。

digits
ステータス: cosmetic

このプロパティを設定できるもの: int

デフォルト: 20

この数の最大の桁数です。

input_rows
ステータス: cosmetic

このプロパティを設定できるもの: longtext, set, subject, datatype

デフォルト: ArchiveConfig.pmで設定

テキストエリアの入力行数、あるいは、メニューに一度に表示する選択肢の数です。 1をセットすると(「multiple」フィールドでない限り)プルダウンメニューとなります。

search_cols
ステータス: cosmetic

このプロパティを設定できるもの: text, longtext, url, email, name, id

デフォルト: ArchiveConfig.pmで設定

検索フィールドの幅です。複数のフィールドを一度に検索する場合は、リストの最初のフィールドから値を得ます。

search_rows
ステータス: cosmetic

このプロパティを設定できるもの: datatype, set, subject

デフォルト: ArchiveConfig.pmで設定

検索フィールドリストに表示するアイテム数です。複数のフィールドを一度に検索する場合は、リストの最初のフィールドから値を得ます。

input_cols
ステータス: cosmetic

このプロパティを設定できるもの: text, longtext, url, email

デフォルト: ArchiveConfig.pmで設定

入力フィールドの幅です。

input_name_cols
ステータス: cosmetic

このプロパティを設定できるもの: name

デフォルト: ArchiveConfig.pmで設定

「name」フィールドの入力フィールドの幅です。

input_id_cols
ステータス: cosmetic

このプロパティを設定できるもの: 「hasid」を持つフィールド

デフォルト: ArchiveConfig.pmで設定

IDを持つフィールドに対するID入力フィールドの幅を設定します。

input_add_boxes
ステータス: cosmetic

このプロパティを設定できるもの: 「multiple」あるいは「multilang」を持つフィールド

デフォルト: ArchiveConfig.pmで設定

「more spaces」ボタンを押した時に追加する入力フィールドの数です。

input_boxes
ステータス: cosmetic

このプロパティを設定できるもの: 「multiple」を持つフィールド

デフォルト: ArchiveConfig.pmで設定

multipleフィールドを最初に表示する際の入力フィールドの数です。

input_style
ステータス: cosmetic

このプロパティを設定できるもの: boolean

デフォルト: 未定義

デフォルトではbooleanはチェックボックスで表示されます。次の形式にして入力フィールドを少しわかりやすくすることができます。

menu
プルダウンメニューで表示します。2つのフレーズ「データセット_fieldopt_フィールド名_TRUE」と 「データセット_fieldopt_フィールド名_FALSE」を設定する必要があります (ここで、データセットとフィールド名は各々データセットとフィールドのidです)。これらはメニューオプションです。

radio
ラジオボタン(1つを選択するとその他は非選択になるボタンです)で表示します。フレーズ「データセット_radio_フィールド名」を設定する必要があります。 フレーズには2つの「ピン」要素、trueとfalse、を持つ必要があります。これらはラジオボタンを表示する位置です。

fromform
ステータス: cosmetic

このプロパティを設定できるもの: すべて

デフォルト: 未定義

フォームに入力された値をデータベースに格納する前に処理するPerl関数へのリファレンスです。 関数には($value, $session)が渡されます。ここで、$valueはフォームに入力された値で、$sessionは現在のEPrints::Sessionです。 関数は処理した値を返さなければなりません。

これはたとえば、ユーザ名として入力された「moj199」を内部ユーザidである「312」に変換することなどに使用することができるでしょう。

toform
ステータス: cosmetic

このプロパティを設定できるもの: すべて

デフォルト: 未定義

フォームに表示する直前に値を処理するPerl関数へのリファレンスです。 関数には($value, $session)が渡されます。ここで、$valueはデータベースから得た値で、$sessionは現在のEPrints::Sessionです。 関数は処理した値を返さなければなりません

これはたとえば、システム内部で使用されるユーザid「312」を人間にわかりやすいユーザ名「moj199」に変換することなどに使用することができるでしょう。

toformを使用する場合は、おそらく、値を元に戻すためのfromformも設定する必要があるでしょう。

maxlength
ステータス: cosmetic

このプロパティを設定できるもの: text, email, url, secret

デフォルト: 255

値の最大長です。

hasid
ステータス: system

このプロパティを設定できるもの: すべて

デフォルト: 0

フィールドに「ID」プロパティを追加します。これは「multiple」の「name」フィールドにもっとも有効で、 nameフィールド、たとえば、ユーザ名やメールアドレスに、個人を一意に識別することができる付加的な値を結び付けます。 ある個人のすべての論文の正確なリストを得たい場合、名前では不十分です。

「publication」テキストフィールドにISSNのようなIDを持たせたいと思うかもしれませんが、この場合は「multiple」フィールドにした方がうまくいきます。

multilang
ステータス: system

このプロパティを設定できるもの: すべて(ただし、dateやyear、int、booleanに指定しても仕方ありません)

デフォルト: 0

これをセットすると、「multilingual」フィールドが作成されます。つまり、言語毎に1つずつの複数の値を持つことができます。

たとえば、「カナダ人の作品」アーカイブの場合、タイトルと抄録を多言語にして、著者がフランス語と英語で入力できるようにしたいと思うでしょう。

これはtitle_enとtitle_frで持つより便利です。なぜなら、EPrintsがそれを理解して、(言語を設定した)ブラウザに合わせて適当な言語の値を表示できるからです。

multiple
ステータス: system

このプロパティを設定できるもの: すべて(ただし、dateやyear、int、booleanに指定しても仕方ありません)

デフォルト: 0

このプロパティをセットすると、そのフィールドは値を1つだけ持つのではなくリストで持つようになり、リストとして表示したり、入力したりできるようになります。 入力フィールドはデフォルトで3つ分用意され、それ以上必要な場合にページを再作成する「more spaces」ボタンが表示されます。

このプロパティがセットされるとそのフィールドは個別のSQLテーブルに格納されるようになります。

options
ステータス: other

このプロパティを必須とするもの: set

デフォルト: デフォルトはなし

たとえば以下のような、選択肢の配列です。

 [ "blue", "green", "red" ]

稼動中のシステムで選択肢を除去すると、不正な値を宙ぶらりんのまま放置することになるかもしれません。選択肢の追加は問題ありません。 その場合、フレーズファイルにも追加することを忘れないでください。

required
ステータス: system

このプロパティを設定できるもの: すべて

デフォルト: 0

このフィールドが常に必要であることを示します。これをセットすることは推奨しません。その代わりにmetadata-types.xmlファイルで各タイプの必須フィールドを指定することを推奨します。

どちらの方法をとったにせよ、必須フィールドを持つアイテムはそのフィールドが値を持たない限り検証に失敗します。

requiredlangs
ステータス: other

このプロパティを設定できるもの: 「multilang」プロパティを持つフィールド

デフォルト: []

この多言語フィールドに必須の言語のリストです。 たとえば、「en(英語)」のエントリを必須とし、他の言語のエントリはオプションとすることができます。

設定例)[ "en", "fr" ]

使用できるコードはlanguages.xmlにあります。

requiredlangsを追加しても、魔法のように、既存のデータにこれらの言語の値がセットされるわけではありません。

showall
ステータス: cosmetic

このプロパティを設定できるもの: subjects

デフォルト: 0

デフォルトでは、サブジェクトは「投稿可」のものだけが表示されます。このプロパティは、投稿の可否に関わらずすべてのサブジェクトを表示するようにします。

showtop
ステータス: cosmetic

このプロパティを設定できるもの: subjects

デフォルト: 0

これをセットすると、サブジェクトの最上位のアイテムが表示されます。一般にこれは「subjects」のようなコンテナであり、隠しておくべきものです。

top
ステータス: cosmetic

このプロパティを設定できるもの: subjects

デフォルト: 「subjects」

ツリーのトップノードを設定します。選択肢はすべての子要素(とその子要素)です。

idpart
システム内部で使用されます。

mainpart
システム内部で使用されます。

render_single_value
ステータス: cosmetic

このプロパティを設定できるもの: すべて

デフォルト: 未定義

1アイテムの表示関数を置き換えます。multipleやmultilangフィールドでは、各言語の値を表示するたびごとに呼び出されます。

( $session, $field, $value )を引数にとり、XHTML DOM断片を返す関数へのリファレンスです。

EPrintsがこのフィールド値にあるLaTex文を見つけて画像に変換するようにしたい場合は、このプロパティに\&EPrints::Latex::render_stringをセットしてください。

(EPrintsバージョン2.1以降では)EPrintsがこのフィールドをXMLとして読み込んで、そのXMLをXHTML Webページに正しく置くようにしたい場合は、このプロパティに \&EPrints::Utils::render_xhtml_fieldをセットしてください(通常システムはすべての比較演算子文字(><)をエスケープします)。

render_value
ステータス: cosmetic

このプロパティを設定できるもの: すべて

デフォルト: 未定義

フィールドのすべての値を表示する関数へのリファレンスであり、EPrintsが持っている表示関数を置き換えます。 引数として( $session, $field, $value, $alllangs, $nolink )を取らなければなりません。

関数はXHTML DOM断片を返さなければなりません。

$alllangsがセットされている場合は、関数は、multilangフィールドについて「最良の」値ではなく、すべての値を表示しなければなりません。

$nolinkがセットされている場合は、たとえばURLリンクのようなHTMLアンカーリンクを使用してはいけません。

render_opts(バージョン2.3.0以降)
ステータス: cosmetic

このプロパティを設定できるもの: すべて

デフォルト: 未定義

専用のrender_value関数の作成という苦労をすることなしに、このフィールドの表示を少しだけ調整する方法を指定できるようにします。

詳細については「メタデータフィールド表示オプション」の項を参照してください。

export_as_xml
ステータス: cosmetic

このプロパティを設定できるもの: すべて

デフォルト: 1

これに0をセットすると、このフィールドはXMLエクスポートプログラムの出力から除外されます。

make_value_orderkey
ステータス: other

このプロパティを設定できるもの: すべて

デフォルト: 未定義

この文字列をアルファベット順にソートするために使用する文字列を返す関数へのリファレンスです。 データベース内で結果をソートするのに使用されます。 関数には( $field, $value, $session, $langid )が引数として渡されます。 あるフィールドを言語毎に別の方法でソートしたい場合に使用します。

たとえば、何らかの理由で、1文字と整数からなるフィールド(a934やb3)が必要だとします。これをアルファベット順にソートすると、a2はa11の後になります。そこで次のようなソートキー作成関数を作成します

 $value =~ m/^(.)([0-9]+)$/;
 return sprintf( "%s%08d", $1, $2 );

この関数はa2をa00000002に、a11をa00000011にするので、アルファベット順に正しくソートするようになります。これらの値はソートに使用されるだけで、出力されることはありませんので、心配は無用です。

このプロパティをフィールドに追加・変更した場合は、おそらく、対象となるデータセット(おそらく「アーカイブ」か「ユーザ」)についてbin/reindexコマンドを実行する必要があるでしょう。これは非常に時間がかかる場合があります。

make_single_value_orderkey
ステータス: other

このプロパティを設定できるもの: すべて

デフォルト: 未定義

make_value_orderkeyの若干簡単なバージョンです。引数として( $field, $value )だけをとります。 $valueには単一の値だけが渡されます。各値について関数を呼び出すことでEPrintsにmultiple値(あるいはmultilang値)の処理をさせます。

make_value_orderkey同様、このプロパティを追加・変更した場合はreindexを実行する必要があります。

fieldnames
ステータス: ほぼcosmetic

このプロパティを必須とするもの: search

デフォルト: デフォルトはなし

フィールド名の配列へのリファレンスです。検索、詳細検索、購読誌を設定するためにArchiveConfig.pmで使用しているものとまったく同じです。

これにフィールドを追加することは問題ありません。フィールドを削除することは、フィールドの値から検索式を組み立てる際にそのフィールドが無視されることを意味します。

can_clone(バージョン2.2以降)
ステータス: 変更可(ただし機能が変更される)

デフォルト: 1

can_cloneに0をセットすると、レコードが複製される際、このフィールドは複製されません。 これは自動的に生成されるフィールドや「コンテンツはスペルチェックされました」などの意味を持つフィールドでは有効でしょう。

sql_index(バージョン2.2以降)
ステータス: system

デフォルト: 1

これに0をセットすると、SQLインデックスが作成されなくなります。 これは「完全一致」検索にこのフィールドを決して使用しないことを意味します。なぜなら、インデックスの無いフィールドの検索は非常に時間がかかるからです。 MySQLはテーブルあたりインデックスを32個しか持てません。これが、この制限を超える場合にこのプロパティを使用しなければならない理由です。

id_editors_only(バージョン2.2以降)
ステータス: cosmetic

デフォルト: 0

このプロパティを設定できるもの: 「has_id」を持つフィールド

編集者ビューでフィールドの「id」部分だけが表示されることを意味します。通常のユーザ投稿画面は関係ありません。 投稿画面と間違えないようしたい場合に使用すると良いでしょう。

allow_set_order(バージョン2.2以降)
ステータス: 変更可(ただし機能が変更される)

デフォルト: 1

このプロパティを設定できるもの: search

検索フィールドに加えて、検索順もユーザが指定できるようにします。

min_resolution(バージョン2.3.0以降)
ステータス: 変更可

デフォルト: day

このプロパティを設定できるもの: date

これに「month」をセットすると、入力フィールドや検証において、日付フィールドの「日にち」部分がオプションになります。

「year」をセットすると、「日にち」と「月」の両方がオプションになります。

ユーザがそれしか知らない場合、「2003」だけでも入力できるようにします。逆に、知っている場合は正確な日付を入力しても問題ありません。

hide_honourific(バージョン2.3.0以降)
ステータス: 変更可

デフォルト: 0

このプロパティを設定できるもの: name

1をセットすると、入力画面に敬称フィールドが表示されなくなります。

hide_lineage(バージョン2.3.0以降)
ステータス: 変更可

デフォルト: 0

このプロパティを設定できるもの: name

1をセットすると、入力画面にリンネッジフィールドが表示されなくなります。

family_first(バージョン2.3.0以降)
ステータス: 変更可

デフォルト: 0

このプロパティを設定できるもの: name

1をセットすると、入力画面で「姓」フィールドが「名」フィールドより先に表示されるようになります。 これは図書館員を幸せにすると思います。

 EPrints 2.3技術文書 - アーカイブメタデータの設定