1# (C) 2007-2011 J.F.Dockes
2# License: GPL V2
3#
4# Field names configuration. This defines how one may search ie for:
5#   author:Hemingway
6#
7# Important:
8#   - the field names MUST be all lowercase alphabetic ascii here. They can
9#     be anycased in the documents.
10
11[prefixes]
12
13#####################################################
14# This section defines what prefix the terms inside named fields will be
15# indexed with (in addition to prefix-less indexing for general search)
16# ALL prefixes MUST be all ASCII UPPERCASE (NO DIGITS)
17#
18# The field names should be the canonic ones, not the aliases defined in
19# the following section. Don't change those which are predefined here,
20# quite a few are hard-coded in the c++. But you can add more (for new
21# fields emitted by filters).
22#
23# Fields can have two relevance boost factors defined, such as in:
24# caption = S ; wdfinc=10
25#  and/or
26# caption = S ; boost = 10
27# The first line would boost the xapian "within document frequency" of
28# caption terms by a factor of 10 at indexing time. The second one
29# (NOT CURRENTLY IMPLEMENTED) would automatically boost the weight of a
30# caption-based field query (ie: caption:mytitle or title:mytitle) at query
31# time.
32#
33# The pfxonly attribute can also be set on entries to express that terms
34# from the field should be indexed only with a prefix (in general, field
35# terms are indexed both with and without a prefix).
36
37# The following ones are probably hard-coded in the c code, can't change at
38# all.
39# Also reserved: F(parentid), Q(uniqueid)
40#   XE (file ext), XP (for path elements), XSFN, XSFS, XXST, XXND, XXPG
41# Using XX was not a good idea.
42#
43# There was initially some effort made to have some compatibility with
44# Xapian Omega, but it probably is now irrelevant, given how differently
45# the indexes are now structured. In any case see
46# xapian/applications/omega/docs/termprefixes.rst in the Xapian source for
47# Xapian/Omega  prefix usage. In a nutshell Omega reserves all single
48# letters except X which is the start for user-defined prefixes.
49#
50# Recoll uses a lot of X-starting prefixes, and also some XX ones so that
51# locally defined prefixes should start with XY to avoid any possible
52# collision with the predefined ones.
53#
54# I hereby commit to not using XY for Recoll.
55# *** USE XY for beginning your local prefixes *** e.g.:
56# myfield = XYMYFIELD
57
58author = A
59xapdate = D
60keywords= K
61xapyearmon = M
62title = S ; wdfinc = 10
63mtype = T
64ext = XE; noterms = 1
65rclmd5 = XM
66dir = XP ; noterms = 1
67abstract = XS
68filename = XSFN ; noterms = 1
69containerfilename = XCFN ; pfxonly = 1 ; noterms = 1
70rclUnsplitFN = XSFS
71xapyear = Y
72recipient = XTO
73rclbes = XB ; noterms = 1
74annotation = XA
75
76[values]
77###########
78## Fields which will be stored in Xapian values, authorizing range query
79## processing.
80# Entries are specified as 'fieldname = valueslot;[px=val1;py=val2...]'.
81# Xapian value slots are 32 bits numbers. Numbers below 1000 are reserved
82# by Recoll or Xapian. Numbers above are available for user configuration
83# Values have types, which can be 'int' or 'string' at the moment. ints have
84# an additional 'len' attributes, which specifies the padding size used for
85# sorting (leading zeroes: all xapian sorting is text-based). 10 is fine
86# for an unsigned 32 bits integer.
87# myfield = 1001; type=int; len = 10
88# mystrfield = 1002; type = string
89
90[stored]
91############################
92# Some fields are stored in the document data record inside the index and
93# can be displayed in result lists. There is no necessity that stored fields
94# should be indexed (have a prefix in the preceding section). Example: "url"
95#
96# Some fields are stored by default, don't add them here:
97#    caption, mimetype, url
98# Only canonical names should be used here, not aliases.
99# "rclaptg" is used for viewer specialization (depending on local config)
100# "rclbes" defines the backend type (ie normal fs, firefox cache). Should
101#   probably be hardcoded, don't remove it
102abstract=
103author=
104filename=
105keywords=
106rclaptg=
107rclbes=
108recipient=
109annotation=
110
111[aliases]
112##########################
113# This section defines field names aliases or synonyms. Any right hand side
114# value will be turned into the lhs canonic name before further treatment
115#
116# The left-hand values in the recoll distribution file are well known and
117# must match names used in the c++ code, or even the index data
118# record. They can't change! But you can add others.
119#
120# Filters should only add canonic names to the meta array when indexing,
121# not aliases.
122abstract = summary dc:summary description xesam:description
123author = creator dc:creator xesam:author xesam:creator from
124title = caption title dc:title subject
125# catg = dc:type contentCategory
126dbytes = size xesam:size
127dmtime = dc:date dc:datemodified datemodified contentmodified \
128       xesam:contentmodified
129ext = fileextension xesam:fileextension
130# Don't add subject to keywords aliases, it's better to keep it for email
131keywords = keyword xesam:keyword tag tags dc:subject xesam:subject \
132	 dc:description
133mtype = mime mimetype xesam:mimetype contenttype xesam:contenttype dc:format
134recipient = to xesam:recipient
135url = dc:identifier xesam:url
136annotation = pdfannot
137
138##################
139# The queryaliases section defines aliases which are used exclusively at
140# query time: there is no risk to pick up a random field from a document
141# (e.g. an HTML meta field) and index it.
142[queryaliases]
143filename = fn
144containerfilename = cfn
145annotation = annot pa
146
147[xattrtofields]
148######################
149# Processing for extended file attributes.
150# By default, attributes are processed as document fields (after removing
151# the 'user' prefix from the name on Linux).
152# You can enter name translations as "xattrname = fieldname". Case matters.
153# Entering an empty translation will disable use of the attribute.
154# The values from the extended attributes will extend, not replace, the
155# data found from equivalent fields inside the document.
156
157# As an example, the following would map a quite plausible "tags" extended
158# attribute into the "keywords" field.
159tags = keywords
160
161# Proposed or standard freedesktop.org extended attributes
162xdg.tags = keywords
163xdg.comment = abstract
164
165# Some standard fields are not to be indexed
166mime_type =
167charset =
168
169########################
170# Sections reserved for specific filters follow
171#
172
173##########################
174# Mail filter section. You can specify mail headers to be indexed
175# in addition to the standard ones: (To:, Cc:, From:, Subject:, Date,
176# Message-Id), along with the field name to be used. For this to be useful,
177# the field name should also be listed in the [prefixes] and possibly the
178# [stored] sections.
179#
180# [mail]
181# x-my-tag = mymailtag
182