source: trunk/grails-app/conf/Searchable.groovy @ 1430

Last change on this file since 1430 was 1430, checked in by work@…, 10 years ago
  • set keyword expansion
  • Property svn:keywords set to Rev Author Date
File size: 6.6 KB
Line 
1/**
2 * This  {@link groovy.util.ConfigObject}  script provides Grails Searchable Plugin configuration.
3 *
4 * You can use the "environments" section at the end of the file to define per-environment
5 * configuration.
6 *
7 * Note it is NOT required to add a reference to this file in Config.groovy; it is loaded by
8 * the plugin itself.
9 *
10 * Available properties in the binding are:
11 *
12 * @param userHome The current user's home directory.
13 *                 Same as System.properties['user.home']
14 * @param appName The Grails environment (ie, "development", "test", "production").
15 *                Same as System.properties['grails.env']
16 * @param appVersion The version of your application
17 * @param grailsEnv The Grails environment (ie, "development", "test", "production").
18 *                  Same as System.properties['grails.env']
19 *
20 * You can also use System.properties to refer to other JVM properties.
21 *
22 * This file is created by "grails install-searchable-config", and replaces
23 * the previous "SearchableConfiguration.groovy"
24 */
25searchable {
26
27        /**
28         * The location of the Compass index
29         *
30         * Examples: "/home/app/compassindex", "ram://app-index" or null to use the default
31         *
32         * The default is "${user.home}/.grails/projects/${app.name}/searchable-index/${grails.env}"
33         */
34        compassConnection = "${user.home}/.grails/projects/${app.name}/searchable-index/${grails.env}"
35
36        /**
37         * Any settings you wish to pass to Compass
38         *
39         * Use this to configure custom/override default analyzers, query parsers, eg
40         *
41         *     Map compassSettings = [
42         *         'compass.engine.analyzer.german.type': 'German'
43         *     ]
44         *
45         * gives you an analyzer called "german" you can then use in mappings and queries, like
46         *
47         *    class Book {*        static searchable = { content analyzer: 'german' }*        String content
48         *}*
49         *    Book.search("unter", analyzer: 'german')
50         *
51         * Documentation for Compass settings is here: http://www.compass-project.org/docs/2.1.0M2/reference/html/core-settings.html
52         */
53        compassSettings = [:]
54
55        /**
56         * Default mapping property exclusions
57         *
58         * No properties matching the given names will be mapped by default
59         * ie, when using "searchable = true"
60         *
61         * This does not apply for classes using "searchable = [only/except: [...]]"
62         * or mapping by closure
63         */
64        defaultExcludedProperties = ["password"]
65
66        /**
67         * Default property formats
68         *
69         * Value is a Map between Class and format string, eg
70         *
71         *     [(Date): "yyyy-MM-dd'T'HH:mm:ss"]
72         *
73         * Only applies to class properties mapped as "searchable properties", which are typically
74         * simple class types that can be represented as Strings (rather than references
75         * or components) AND only required if overriding the built-in format.
76         */
77        defaultFormats = [:]
78
79        /**
80         * Set default options for each SearchableService/Domain-class method, by method name.
81         *
82         * These can be overriden on a per-query basis by passing the method a Map of options
83         * containing those you want to override.
84         *
85         * You may want to customise the options used by the search method, which are:
86         *
87         * @param reload whether to reload domain class instances from the DB: true|false
88         *                        If true, the search  will be slower but objects will be associated
89         *                        with the current Hibernate session
90         * @param escape whether to escape special characters in string queries: true|false
91         * @param offset the 0-based hit offset of the first page of results.
92         *                        Normally you wouldn't change it from 0, it's only here because paging
93         *                        works by using an offset + max combo for a specific page
94         * @param max the page size, for paged search results
95         * @param defaultOperator if the query does not otherwise indicate, then the default operator
96         *                        applied: "or" or "and".
97         *                        If "and" means all terms are required for a match, if "or" means
98         *                        any term is required for a match
99         * @param suggestQuery if true and search method is returning a search-result object
100         *                        (rather than a domain class instance, list or count) then a
101         *                        "suggestedQuery" property is also added to the search-result.
102         *                        This can also be a Map of options as supported by the suggestQuery
103         *                        method itself
104         *
105         * For the options supported by other methods, please see the documentation
106         * http://grails.org/Searchable+Plugin
107         */
108        defaultMethodOptions = [
109                search: [reload: false, escape: false, offset: 0, max: 10, defaultOperator: "and"],
110                suggestQuery: [userFriendly: true]
111        ]
112
113        /**
114         * Should changes made through GORM/Hibernate be mirrored to the index
115         * automatically (using Compass::GPS)?
116         *
117         * If false, you must manage the index manually using index/unindex/reindex
118         */
119        mirrorChanges = true
120
121        /**
122         * Should the database be indexed at startup (using Compass:GPS)?
123         *
124         * Possible values: true|false|"fork"
125         *
126         * The value may be a boolean true|false or a string "fork", which means true,
127         * and fork a thread for it
128         *
129         * If you use BootStrap.groovy to insert your data then you should use "true",
130         * which means do a non-forking, otherwise "fork" is recommended
131         */
132        bulkIndexOnStartup = true
133
134        /**
135         * Should index locks be removed (if present) at startup?
136         */
137        releaseLocksOnStartup = true
138}
139
140// per-environment settings
141environments {
142        development {
143                searchable {
144                        // development is default; inherits from above
145                        compassConnection = new File(
146                                ((new File("/home/tomcat").exists()) ? "/home/tomcat/searchable/gscf-dev/compassindex" : "/tmp/searchable/gscf-dev/compassindex")
147                        ).absolutePath
148                }
149        }
150        ci {
151                // used by build script
152                searchable {
153                        compassConnection = new File(
154                                ((new File("/home/tomcat").exists()) ? "/home/tomcat/searchable/gscf-ci/compassindex" : "/tmp/searchable/gscf-ci/compassindex")
155                        ).absolutePath
156                }
157        }
158        test {
159                // used by build script
160                searchable {
161                        // disable bulk index on startup
162                        //bulkIndexOnStartup = false
163
164                        // use faster in-memory index
165                        //compassConnection = "ram://test-index"
166
167                        compassConnection = new File(
168                                ((new File("/home/tomcat").exists()) ? "/home/tomcat/searchable/gscf-test/compassindex" : "/tmp/searchable/gscf-test/compassindex")
169                        ).absolutePath
170                }
171        }
172        production {
173                searchable {
174                        // add your production settings here
175                }
176        }
177        www {
178                // used by build script
179                searchable {
180                        // add your production settings here
181                        compassConnection = new File(
182                                ((new File("/home/tomcat").exists()) ? "/home/tomcat/searchable/gscf-www/compassindex" : "/tmp/searchable/gscf-www/compassindex")
183                        ).absolutePath
184                }
185        }
186}
Note: See TracBrowser for help on using the repository browser.