acts_as_searchable 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +3 -0
- data/MIT-LICENSE +20 -0
- data/README +32 -0
- data/Rakefile +186 -0
- data/TODO +0 -0
- data/init.rb +1 -0
- data/install.rb +1 -0
- data/lib/acts_as_searchable.rb +360 -0
- data/lib/vendor/estraierpure.rb +1025 -0
- data/lib/vendor/overview +100 -0
- data/rdoc/classes/ActiveRecord/Acts/Searchable.html +182 -0
- data/rdoc/classes/ActiveRecord/Acts/Searchable/ActMethods.html +233 -0
- data/rdoc/classes/ActiveRecord/Acts/Searchable/ClassMethods.html +387 -0
- data/rdoc/classes/EstraierPure/Condition.html +619 -0
- data/rdoc/classes/EstraierPure/Document.html +551 -0
- data/rdoc/classes/EstraierPure/Node.html +1172 -0
- data/rdoc/classes/EstraierPure/NodeResult.html +248 -0
- data/rdoc/classes/EstraierPure/ResultDocument.html +307 -0
- data/rdoc/created.rid +1 -0
- data/rdoc/files/README.html +165 -0
- data/rdoc/files/lib/acts_as_searchable_rb.html +140 -0
- data/rdoc/files/lib/vendor/estraierpure_rb.html +253 -0
- data/rdoc/fr_class_index.html +34 -0
- data/rdoc/fr_file_index.html +29 -0
- data/rdoc/fr_method_index.html +97 -0
- data/rdoc/index.html +24 -0
- data/rdoc/rdoc-style.css +208 -0
- data/tasks/acts_as_searchable_tasks.rake +21 -0
- data/test/abstract_unit.rb +34 -0
- data/test/acts_as_searchable_test.rb +153 -0
- data/test/database.yml +3 -0
- data/test/fixtures/article.rb +5 -0
- data/test/fixtures/articles.yml +23 -0
- data/test/fixtures/comment.rb +4 -0
- data/test/fixtures/comments.yml +4 -0
- data/test/schema.rb +14 -0
- metadata +96 -0
@@ -0,0 +1,387 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
7
|
+
<head>
|
8
|
+
<title>Module: ActiveRecord::Acts::Searchable::ClassMethods</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
11
|
+
<link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
|
12
|
+
<script type="text/javascript">
|
13
|
+
// <![CDATA[
|
14
|
+
|
15
|
+
function popupCode( url ) {
|
16
|
+
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
17
|
+
}
|
18
|
+
|
19
|
+
function toggleCode( id ) {
|
20
|
+
if ( document.getElementById )
|
21
|
+
elem = document.getElementById( id );
|
22
|
+
else if ( document.all )
|
23
|
+
elem = eval( "document.all." + id );
|
24
|
+
else
|
25
|
+
return false;
|
26
|
+
|
27
|
+
elemStyle = elem.style;
|
28
|
+
|
29
|
+
if ( elemStyle.display != "block" ) {
|
30
|
+
elemStyle.display = "block"
|
31
|
+
} else {
|
32
|
+
elemStyle.display = "none"
|
33
|
+
}
|
34
|
+
|
35
|
+
return true;
|
36
|
+
}
|
37
|
+
|
38
|
+
// Make codeblocks hidden by default
|
39
|
+
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
40
|
+
|
41
|
+
// ]]>
|
42
|
+
</script>
|
43
|
+
|
44
|
+
</head>
|
45
|
+
<body>
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
<div id="classHeader">
|
50
|
+
<table class="header-table">
|
51
|
+
<tr class="top-aligned-row">
|
52
|
+
<td><strong>Module</strong></td>
|
53
|
+
<td class="class-name-in-header">ActiveRecord::Acts::Searchable::ClassMethods</td>
|
54
|
+
</tr>
|
55
|
+
<tr class="top-aligned-row">
|
56
|
+
<td><strong>In:</strong></td>
|
57
|
+
<td>
|
58
|
+
<a href="../../../../files/lib/acts_as_searchable_rb.html">
|
59
|
+
lib/acts_as_searchable.rb
|
60
|
+
</a>
|
61
|
+
<br />
|
62
|
+
</td>
|
63
|
+
</tr>
|
64
|
+
|
65
|
+
</table>
|
66
|
+
</div>
|
67
|
+
<!-- banner header -->
|
68
|
+
|
69
|
+
<div id="bodyContent">
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
<div id="contextContent">
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
</div>
|
78
|
+
|
79
|
+
<div id="method-list">
|
80
|
+
<h3 class="section-bar">Methods</h3>
|
81
|
+
|
82
|
+
<div class="name-list">
|
83
|
+
<a href="#M000068">acts_as_searchable</a>
|
84
|
+
<a href="#M000070">clear_index!</a>
|
85
|
+
<a href="#M000069">fulltext_search</a>
|
86
|
+
<a href="#M000071">reindex!</a>
|
87
|
+
</div>
|
88
|
+
</div>
|
89
|
+
|
90
|
+
</div>
|
91
|
+
|
92
|
+
|
93
|
+
<!-- if includes -->
|
94
|
+
|
95
|
+
<div id="section">
|
96
|
+
|
97
|
+
|
98
|
+
<div id="constants-list">
|
99
|
+
<h3 class="section-bar">Constants</h3>
|
100
|
+
|
101
|
+
<div class="name-list">
|
102
|
+
<table summary="Constants">
|
103
|
+
<tr class="top-aligned-row context-row">
|
104
|
+
<td class="context-item-name">VALID_FULLTEXT_OPTIONS</td>
|
105
|
+
<td>=</td>
|
106
|
+
<td class="context-item-value">[:limit, :offset, :order, :attributes, :raw_matches, :find]</td>
|
107
|
+
</tr>
|
108
|
+
</table>
|
109
|
+
</div>
|
110
|
+
</div>
|
111
|
+
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
|
116
|
+
|
117
|
+
<!-- if method_list -->
|
118
|
+
<div id="methods">
|
119
|
+
<h3 class="section-bar">Public Instance methods</h3>
|
120
|
+
|
121
|
+
<div id="method-M000068" class="method-detail">
|
122
|
+
<a name="M000068"></a>
|
123
|
+
|
124
|
+
<div class="method-heading">
|
125
|
+
<a href="#M000068" class="method-signature">
|
126
|
+
<span class="method-name">acts_as_searchable</span><span class="method-args">(options = {})</span>
|
127
|
+
</a>
|
128
|
+
</div>
|
129
|
+
|
130
|
+
<div class="method-description">
|
131
|
+
<h2>Configuration options</h2>
|
132
|
+
<ul>
|
133
|
+
<li><tt>searchable_fields</tt> - Fields to provide searching and indexing for
|
134
|
+
(default: ‘body’)
|
135
|
+
|
136
|
+
</li>
|
137
|
+
<li><tt>attributes</tt> - Additional attributes to store in Hyper Estraier with
|
138
|
+
the appropriate method supplying the value
|
139
|
+
|
140
|
+
</li>
|
141
|
+
<li><tt>if_changed</tt> - Extra list of attributes to add to the list of
|
142
|
+
attributes that trigger an index update when changed
|
143
|
+
|
144
|
+
</li>
|
145
|
+
</ul>
|
146
|
+
<p>
|
147
|
+
Examples:
|
148
|
+
</p>
|
149
|
+
<pre>
|
150
|
+
acts_as_searchable :attributes => { :title => nil, :blog => :blog_title }, :searchable_fields => [ :title, :body ]
|
151
|
+
</pre>
|
152
|
+
<p>
|
153
|
+
This would store the return value of the <tt>title</tt> method in the
|
154
|
+
<tt>title</tt> attribute and the return value of the <tt>blog_title</tt>
|
155
|
+
method in the <tt>blog</tt> attribute. The contents of the <tt>title</tt>
|
156
|
+
and <tt>body</tt> columns would end up being indexed for searching.
|
157
|
+
</p>
|
158
|
+
<h2>Attribute naming</h2>
|
159
|
+
<p>
|
160
|
+
Attributes that match the reserved names of the Hyper Estraier system
|
161
|
+
attributes are mapped automatically. This is something to keep in mind for
|
162
|
+
custom ordering options or additional query constraints in <tt><a
|
163
|
+
href="ClassMethods.html#M000069">fulltext_search</a></tt> For a list of
|
164
|
+
these attributes see <tt>EstraierPure::SYSTEM_ATTRIBUTES</tt> or visit:
|
165
|
+
</p>
|
166
|
+
<pre>
|
167
|
+
http://hyperestraier.sourceforge.net/uguide-en.html#attributes
|
168
|
+
</pre>
|
169
|
+
<p>
|
170
|
+
From the example above:
|
171
|
+
</p>
|
172
|
+
<pre>
|
173
|
+
Model.fulltext_search('query', :order => '@title STRA') # Returns results ordered by title in ascending order
|
174
|
+
Model.fulltext_search('query', :attributes => 'blog STREQ poocs.net') # Returns results with a blog attribute of 'poocs.net'
|
175
|
+
</pre>
|
176
|
+
<p><a class="source-toggle" href="#"
|
177
|
+
onclick="toggleCode('M000068-source');return false;">[Source]</a></p>
|
178
|
+
<div class="method-source-code" id="M000068-source">
|
179
|
+
<pre>
|
180
|
+
<span class="ruby-comment cmt"># File lib/acts_as_searchable.rb, line 113</span>
|
181
|
+
113: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">acts_as_searchable</span>(<span class="ruby-identifier">options</span> = {})
|
182
|
+
114: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">included_modules</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-constant">ActiveRecord</span><span class="ruby-operator">::</span><span class="ruby-constant">Acts</span><span class="ruby-operator">::</span><span class="ruby-constant">Searchable</span><span class="ruby-operator">::</span><span class="ruby-constant">ActMethods</span>)
|
183
|
+
115:
|
184
|
+
116: <span class="ruby-identifier">send</span> <span class="ruby-identifier">:include</span>, <span class="ruby-constant">ActiveRecord</span><span class="ruby-operator">::</span><span class="ruby-constant">Acts</span><span class="ruby-operator">::</span><span class="ruby-constant">Searchable</span><span class="ruby-operator">::</span><span class="ruby-constant">ActMethods</span>
|
185
|
+
117:
|
186
|
+
118: <span class="ruby-identifier">cattr_accessor</span> <span class="ruby-identifier">:searchable_fields</span>, <span class="ruby-identifier">:attributes_to_store</span>, <span class="ruby-identifier">:if_changed</span>, <span class="ruby-identifier">:estraier_connection</span>, <span class="ruby-identifier">:estraier_node</span>,
|
187
|
+
119: <span class="ruby-identifier">:estraier_host</span>, <span class="ruby-identifier">:estraier_port</span>, <span class="ruby-identifier">:estraier_user</span>, <span class="ruby-identifier">:estraier_password</span>
|
188
|
+
120:
|
189
|
+
121: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">estraier_node</span> = <span class="ruby-identifier">estraier_config</span>[<span class="ruby-value str">'node'</span>] <span class="ruby-operator">||</span> <span class="ruby-constant">RAILS_ENV</span>
|
190
|
+
122: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">estraier_host</span> = <span class="ruby-identifier">estraier_config</span>[<span class="ruby-value str">'host'</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">'localhost'</span>
|
191
|
+
123: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">estraier_port</span> = <span class="ruby-identifier">estraier_config</span>[<span class="ruby-value str">'port'</span>] <span class="ruby-operator">||</span> <span class="ruby-value">1978</span>
|
192
|
+
124: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">estraier_user</span> = <span class="ruby-identifier">estraier_config</span>[<span class="ruby-value str">'user'</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">'admin'</span>
|
193
|
+
125: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">estraier_password</span> = <span class="ruby-identifier">estraier_config</span>[<span class="ruby-value str">'password'</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">'admin'</span>
|
194
|
+
126: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">searchable_fields</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:searchable_fields</span>] <span class="ruby-operator">||</span> [ <span class="ruby-identifier">:body</span> ]
|
195
|
+
127: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">attributes_to_store</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:attributes</span>] <span class="ruby-operator">||</span> {}
|
196
|
+
128: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">if_changed</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:if_changed</span>] <span class="ruby-operator">||</span> []
|
197
|
+
129:
|
198
|
+
130: <span class="ruby-identifier">send</span> <span class="ruby-identifier">:attr_accessor</span>, <span class="ruby-identifier">:changed_attributes</span>
|
199
|
+
131:
|
200
|
+
132: <span class="ruby-identifier">class_eval</span> <span class="ruby-keyword kw">do</span>
|
201
|
+
133: <span class="ruby-identifier">after_update</span> <span class="ruby-identifier">:update_index</span>
|
202
|
+
134: <span class="ruby-identifier">after_create</span> <span class="ruby-identifier">:add_to_index</span>
|
203
|
+
135: <span class="ruby-identifier">after_destroy</span> <span class="ruby-identifier">:remove_from_index</span>
|
204
|
+
136: <span class="ruby-identifier">after_save</span> <span class="ruby-identifier">:clear_changed_attributes</span>
|
205
|
+
137:
|
206
|
+
138: (<span class="ruby-identifier">if_changed</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">searchable_fields</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">attributes_to_store</span>.<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">attribute</span>, <span class="ruby-identifier">method</span><span class="ruby-operator">|</span> <span class="ruby-identifier">method</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">attribute</span> }).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attr_name</span><span class="ruby-operator">|</span>
|
207
|
+
139: <span class="ruby-identifier">define_method</span>(<span class="ruby-node">"#{attr_name}="</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
|
208
|
+
140: <span class="ruby-identifier">write_changed_attribute</span> <span class="ruby-identifier">attr_name</span>, <span class="ruby-identifier">value</span>
|
209
|
+
141: <span class="ruby-keyword kw">end</span>
|
210
|
+
142: <span class="ruby-keyword kw">end</span>
|
211
|
+
143:
|
212
|
+
144: <span class="ruby-identifier">connect_estraier</span>
|
213
|
+
145: <span class="ruby-keyword kw">end</span>
|
214
|
+
146: <span class="ruby-keyword kw">end</span>
|
215
|
+
</pre>
|
216
|
+
</div>
|
217
|
+
</div>
|
218
|
+
</div>
|
219
|
+
|
220
|
+
<div id="method-M000070" class="method-detail">
|
221
|
+
<a name="M000070"></a>
|
222
|
+
|
223
|
+
<div class="method-heading">
|
224
|
+
<a href="#M000070" class="method-signature">
|
225
|
+
<span class="method-name">clear_index!</span><span class="method-args">()</span>
|
226
|
+
</a>
|
227
|
+
</div>
|
228
|
+
|
229
|
+
<div class="method-description">
|
230
|
+
<p>
|
231
|
+
Clear all entries from index
|
232
|
+
</p>
|
233
|
+
<p><a class="source-toggle" href="#"
|
234
|
+
onclick="toggleCode('M000070-source');return false;">[Source]</a></p>
|
235
|
+
<div class="method-source-code" id="M000070-source">
|
236
|
+
<pre>
|
237
|
+
<span class="ruby-comment cmt"># File lib/acts_as_searchable.rb, line 209</span>
|
238
|
+
209: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clear_index!</span>
|
239
|
+
210: <span class="ruby-identifier">estraier_index</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">d</span><span class="ruby-operator">|</span> <span class="ruby-identifier">estraier_connection</span>.<span class="ruby-identifier">out_doc</span>(<span class="ruby-identifier">d</span>.<span class="ruby-identifier">attr</span>(<span class="ruby-value str">'@id'</span>)) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">d</span>.<span class="ruby-identifier">nil?</span> }
|
240
|
+
211: <span class="ruby-keyword kw">end</span>
|
241
|
+
</pre>
|
242
|
+
</div>
|
243
|
+
</div>
|
244
|
+
</div>
|
245
|
+
|
246
|
+
<div id="method-M000069" class="method-detail">
|
247
|
+
<a name="M000069"></a>
|
248
|
+
|
249
|
+
<div class="method-heading">
|
250
|
+
<a href="#M000069" class="method-signature">
|
251
|
+
<span class="method-name">fulltext_search</span><span class="method-args">(query = "", options = {})</span>
|
252
|
+
</a>
|
253
|
+
</div>
|
254
|
+
|
255
|
+
<div class="method-description">
|
256
|
+
<p>
|
257
|
+
Perform a fulltext search against the Hyper Estraier index.
|
258
|
+
</p>
|
259
|
+
<p>
|
260
|
+
Options taken:
|
261
|
+
</p>
|
262
|
+
<ul>
|
263
|
+
<li><tt>limit</tt> - Maximum number of records to retrieve (default:
|
264
|
+
<tt>100</tt>)
|
265
|
+
|
266
|
+
</li>
|
267
|
+
<li><tt>offset</tt> - Number of records to skip (default: <tt>0</tt>)
|
268
|
+
|
269
|
+
</li>
|
270
|
+
<li><tt>order</tt> - Hyper Estraier expression to sort the results (example:
|
271
|
+
<tt>@title STRA</tt>, default: ordering by score)
|
272
|
+
|
273
|
+
</li>
|
274
|
+
<li><tt>attributes</tt> - String to append to Hyper Estraier search query
|
275
|
+
|
276
|
+
</li>
|
277
|
+
<li><tt>raw_matches</tt> - Returns raw Hyper Estraier documents instead of
|
278
|
+
instantiated AR objects
|
279
|
+
|
280
|
+
</li>
|
281
|
+
<li><tt>find</tt> - Options to pass on to the <tt>ActiveRecord::Base#find</tt>
|
282
|
+
call
|
283
|
+
|
284
|
+
</li>
|
285
|
+
</ul>
|
286
|
+
<p>
|
287
|
+
Examples:
|
288
|
+
</p>
|
289
|
+
<pre>
|
290
|
+
Article.fulltext_search("biscuits AND gravy")
|
291
|
+
Article.fulltext_search("biscuits AND gravy", :limit => 15, :offset => 14)
|
292
|
+
Article.fulltext_search("biscuits AND gravy", :attributes => "tag STRINC food")
|
293
|
+
Article.fulltext_search("biscuits AND gravy", :attributes => ["tag STRINC food", "@title STRBW Biscuit"])
|
294
|
+
Article.fulltext_search("biscuits AND gravy", :order => "@title STRA")
|
295
|
+
Article.fulltext_search("biscuits AND gravy", :raw_matches => true)
|
296
|
+
Article.fulltext_search("biscuits AND gravy", :find => { :order => :title, :include => :comments })
|
297
|
+
</pre>
|
298
|
+
<p>
|
299
|
+
Consult the Hyper Estraier documentation on proper query syntax:
|
300
|
+
</p>
|
301
|
+
<pre>
|
302
|
+
http://hyperestraier.sourceforge.net/uguide-en.html#searchcond
|
303
|
+
</pre>
|
304
|
+
<p><a class="source-toggle" href="#"
|
305
|
+
onclick="toggleCode('M000069-source');return false;">[Source]</a></p>
|
306
|
+
<div class="method-source-code" id="M000069-source">
|
307
|
+
<pre>
|
308
|
+
<span class="ruby-comment cmt"># File lib/acts_as_searchable.rb, line 172</span>
|
309
|
+
172: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fulltext_search</span>(<span class="ruby-identifier">query</span> = <span class="ruby-value str">""</span>, <span class="ruby-identifier">options</span> = {})
|
310
|
+
173: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">reverse_merge!</span>(<span class="ruby-identifier">:limit</span> =<span class="ruby-operator">></span> <span class="ruby-value">100</span>, <span class="ruby-identifier">:offset</span> =<span class="ruby-operator">></span> <span class="ruby-value">0</span>)
|
311
|
+
174: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">assert_valid_keys</span>(<span class="ruby-constant">VALID_FULLTEXT_OPTIONS</span>)
|
312
|
+
175:
|
313
|
+
176: <span class="ruby-identifier">find_options</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:find</span>] <span class="ruby-operator">||</span> {}
|
314
|
+
177: [ <span class="ruby-identifier">:limit</span>, <span class="ruby-identifier">:offset</span> ].<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span> <span class="ruby-identifier">find_options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">k</span>) } <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">find_options</span>.<span class="ruby-identifier">blank?</span>
|
315
|
+
178:
|
316
|
+
179: <span class="ruby-identifier">cond</span> = <span class="ruby-constant">EstraierPure</span><span class="ruby-operator">::</span><span class="ruby-constant">Condition</span>.<span class="ruby-identifier">new</span>
|
317
|
+
180: <span class="ruby-identifier">cond</span>.<span class="ruby-identifier">set_phrase</span> <span class="ruby-identifier">query</span>
|
318
|
+
181: <span class="ruby-identifier">cond</span>.<span class="ruby-identifier">add_attr</span>(<span class="ruby-node">"type STREQ #{self.to_s}"</span>)
|
319
|
+
182: [<span class="ruby-identifier">options</span>[<span class="ruby-identifier">:attributes</span>]].<span class="ruby-identifier">flatten</span>.<span class="ruby-identifier">reject</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-identifier">a</span>.<span class="ruby-identifier">blank?</span> }.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attr</span><span class="ruby-operator">|</span>
|
320
|
+
183: <span class="ruby-identifier">cond</span>.<span class="ruby-identifier">add_attr</span> <span class="ruby-identifier">attr</span>
|
321
|
+
184: <span class="ruby-keyword kw">end</span>
|
322
|
+
185: <span class="ruby-identifier">cond</span>.<span class="ruby-identifier">set_max</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:limit</span>]
|
323
|
+
186: <span class="ruby-identifier">cond</span>.<span class="ruby-identifier">set_skip</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:offset</span>]
|
324
|
+
187: <span class="ruby-identifier">cond</span>.<span class="ruby-identifier">set_order</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:order</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:order</span>]
|
325
|
+
188:
|
326
|
+
189: <span class="ruby-identifier">matches</span> = <span class="ruby-keyword kw">nil</span>
|
327
|
+
190: <span class="ruby-identifier">seconds</span> = <span class="ruby-constant">Benchmark</span>.<span class="ruby-identifier">realtime</span> <span class="ruby-keyword kw">do</span>
|
328
|
+
191: <span class="ruby-identifier">result</span> = <span class="ruby-identifier">estraier_connection</span>.<span class="ruby-identifier">search</span>(<span class="ruby-identifier">cond</span>, <span class="ruby-value">1</span>);
|
329
|
+
192: <span class="ruby-keyword kw">return</span> [] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">result</span>
|
330
|
+
193:
|
331
|
+
194: <span class="ruby-identifier">matches</span> = <span class="ruby-identifier">get_docs_from</span>(<span class="ruby-identifier">result</span>)
|
332
|
+
195: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">matches</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:raw_matches</span>]
|
333
|
+
196: <span class="ruby-keyword kw">end</span>
|
334
|
+
197:
|
335
|
+
198: <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(
|
336
|
+
199: <span class="ruby-identifier">connection</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">:format_log_entry</span>,
|
337
|
+
200: <span class="ruby-node">"#{self.to_s} seach for '#{query}' (#{sprintf("%f", seconds)})"</span>,
|
338
|
+
201: <span class="ruby-node">"Condition: #{cond.to_s}"</span>
|
339
|
+
202: )
|
340
|
+
203: )
|
341
|
+
204:
|
342
|
+
205: <span class="ruby-identifier">matches</span>.<span class="ruby-identifier">blank?</span> <span class="ruby-value">? </span>[] <span class="ruby-operator">:</span> <span class="ruby-identifier">find</span>(<span class="ruby-identifier">matches</span>.<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">m</span><span class="ruby-operator">|</span> <span class="ruby-identifier">m</span>.<span class="ruby-identifier">attr</span>(<span class="ruby-value str">'db_id'</span>) }, <span class="ruby-identifier">find_options</span>)
|
343
|
+
206: <span class="ruby-keyword kw">end</span>
|
344
|
+
</pre>
|
345
|
+
</div>
|
346
|
+
</div>
|
347
|
+
</div>
|
348
|
+
|
349
|
+
<div id="method-M000071" class="method-detail">
|
350
|
+
<a name="M000071"></a>
|
351
|
+
|
352
|
+
<div class="method-heading">
|
353
|
+
<a href="#M000071" class="method-signature">
|
354
|
+
<span class="method-name">reindex!</span><span class="method-args">()</span>
|
355
|
+
</a>
|
356
|
+
</div>
|
357
|
+
|
358
|
+
<div class="method-description">
|
359
|
+
<p>
|
360
|
+
Peform a full re-index of the model data for this model
|
361
|
+
</p>
|
362
|
+
<p><a class="source-toggle" href="#"
|
363
|
+
onclick="toggleCode('M000071-source');return false;">[Source]</a></p>
|
364
|
+
<div class="method-source-code" id="M000071-source">
|
365
|
+
<pre>
|
366
|
+
<span class="ruby-comment cmt"># File lib/acts_as_searchable.rb, line 214</span>
|
367
|
+
214: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reindex!</span>
|
368
|
+
215: <span class="ruby-identifier">find</span>(<span class="ruby-identifier">:all</span>).<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">r</span><span class="ruby-operator">|</span> <span class="ruby-identifier">r</span>.<span class="ruby-identifier">update_index</span>(<span class="ruby-keyword kw">true</span>) }
|
369
|
+
216: <span class="ruby-keyword kw">end</span>
|
370
|
+
</pre>
|
371
|
+
</div>
|
372
|
+
</div>
|
373
|
+
</div>
|
374
|
+
|
375
|
+
|
376
|
+
</div>
|
377
|
+
|
378
|
+
|
379
|
+
</div>
|
380
|
+
|
381
|
+
|
382
|
+
<div id="validator-badges">
|
383
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
384
|
+
</div>
|
385
|
+
|
386
|
+
</body>
|
387
|
+
</html>
|
@@ -0,0 +1,619 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
7
|
+
<head>
|
8
|
+
<title>Class: EstraierPure::Condition</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
11
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
12
|
+
<script type="text/javascript">
|
13
|
+
// <![CDATA[
|
14
|
+
|
15
|
+
function popupCode( url ) {
|
16
|
+
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
17
|
+
}
|
18
|
+
|
19
|
+
function toggleCode( id ) {
|
20
|
+
if ( document.getElementById )
|
21
|
+
elem = document.getElementById( id );
|
22
|
+
else if ( document.all )
|
23
|
+
elem = eval( "document.all." + id );
|
24
|
+
else
|
25
|
+
return false;
|
26
|
+
|
27
|
+
elemStyle = elem.style;
|
28
|
+
|
29
|
+
if ( elemStyle.display != "block" ) {
|
30
|
+
elemStyle.display = "block"
|
31
|
+
} else {
|
32
|
+
elemStyle.display = "none"
|
33
|
+
}
|
34
|
+
|
35
|
+
return true;
|
36
|
+
}
|
37
|
+
|
38
|
+
// Make codeblocks hidden by default
|
39
|
+
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
40
|
+
|
41
|
+
// ]]>
|
42
|
+
</script>
|
43
|
+
|
44
|
+
</head>
|
45
|
+
<body>
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
<div id="classHeader">
|
50
|
+
<table class="header-table">
|
51
|
+
<tr class="top-aligned-row">
|
52
|
+
<td><strong>Class</strong></td>
|
53
|
+
<td class="class-name-in-header">EstraierPure::Condition</td>
|
54
|
+
</tr>
|
55
|
+
<tr class="top-aligned-row">
|
56
|
+
<td><strong>In:</strong></td>
|
57
|
+
<td>
|
58
|
+
<a href="../../files/lib/acts_as_searchable_rb.html">
|
59
|
+
lib/acts_as_searchable.rb
|
60
|
+
</a>
|
61
|
+
<br />
|
62
|
+
<a href="../../files/lib/vendor/estraierpure_rb.html">
|
63
|
+
lib/vendor/estraierpure.rb
|
64
|
+
</a>
|
65
|
+
<br />
|
66
|
+
</td>
|
67
|
+
</tr>
|
68
|
+
|
69
|
+
<tr class="top-aligned-row">
|
70
|
+
<td><strong>Parent:</strong></td>
|
71
|
+
<td>
|
72
|
+
Object
|
73
|
+
</td>
|
74
|
+
</tr>
|
75
|
+
</table>
|
76
|
+
</div>
|
77
|
+
<!-- banner header -->
|
78
|
+
|
79
|
+
<div id="bodyContent">
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
<div id="contextContent">
|
84
|
+
|
85
|
+
<div id="description">
|
86
|
+
<p>
|
87
|
+
Abstraction of search condition.
|
88
|
+
</p>
|
89
|
+
|
90
|
+
</div>
|
91
|
+
|
92
|
+
|
93
|
+
</div>
|
94
|
+
|
95
|
+
<div id="method-list">
|
96
|
+
<h3 class="section-bar">Methods</h3>
|
97
|
+
|
98
|
+
<div class="name-list">
|
99
|
+
<a href="#M000052">add_attr</a>
|
100
|
+
<a href="#M000058">attrs</a>
|
101
|
+
<a href="#M000060">max</a>
|
102
|
+
<a href="#M000063">new</a>
|
103
|
+
<a href="#M000062">options</a>
|
104
|
+
<a href="#M000059">order</a>
|
105
|
+
<a href="#M000057">phrase</a>
|
106
|
+
<a href="#M000054">set_max</a>
|
107
|
+
<a href="#M000056">set_options</a>
|
108
|
+
<a href="#M000053">set_order</a>
|
109
|
+
<a href="#M000051">set_phrase</a>
|
110
|
+
<a href="#M000055">set_skip</a>
|
111
|
+
<a href="#M000061">skip</a>
|
112
|
+
<a href="#M000050">to_s</a>
|
113
|
+
</div>
|
114
|
+
</div>
|
115
|
+
|
116
|
+
</div>
|
117
|
+
|
118
|
+
|
119
|
+
<!-- if includes -->
|
120
|
+
|
121
|
+
<div id="section">
|
122
|
+
|
123
|
+
|
124
|
+
<div id="constants-list">
|
125
|
+
<h3 class="section-bar">Constants</h3>
|
126
|
+
|
127
|
+
<div class="name-list">
|
128
|
+
<table summary="Constants">
|
129
|
+
<tr class="top-aligned-row context-row">
|
130
|
+
<td class="context-item-name">SURE</td>
|
131
|
+
<td>=</td>
|
132
|
+
<td class="context-item-value">1 << 0</td>
|
133
|
+
<td width="3em"> </td>
|
134
|
+
<td class="context-item-desc">
|
135
|
+
option: check N-gram keys skipping by three
|
136
|
+
|
137
|
+
</td>
|
138
|
+
</tr>
|
139
|
+
<tr class="top-aligned-row context-row">
|
140
|
+
<td class="context-item-name">USUAL</td>
|
141
|
+
<td>=</td>
|
142
|
+
<td class="context-item-value">1 << 1</td>
|
143
|
+
<td width="3em"> </td>
|
144
|
+
<td class="context-item-desc">
|
145
|
+
option: check N-gram keys skipping by two
|
146
|
+
|
147
|
+
</td>
|
148
|
+
</tr>
|
149
|
+
<tr class="top-aligned-row context-row">
|
150
|
+
<td class="context-item-name">FAST</td>
|
151
|
+
<td>=</td>
|
152
|
+
<td class="context-item-value">1 << 2</td>
|
153
|
+
<td width="3em"> </td>
|
154
|
+
<td class="context-item-desc">
|
155
|
+
option: without TF-IDF tuning
|
156
|
+
|
157
|
+
</td>
|
158
|
+
</tr>
|
159
|
+
<tr class="top-aligned-row context-row">
|
160
|
+
<td class="context-item-name">AGITO</td>
|
161
|
+
<td>=</td>
|
162
|
+
<td class="context-item-value">1 << 3</td>
|
163
|
+
<td width="3em"> </td>
|
164
|
+
<td class="context-item-desc">
|
165
|
+
option: with the simplified phrase
|
166
|
+
|
167
|
+
</td>
|
168
|
+
</tr>
|
169
|
+
<tr class="top-aligned-row context-row">
|
170
|
+
<td class="context-item-name">NOIDF</td>
|
171
|
+
<td>=</td>
|
172
|
+
<td class="context-item-value">1 << 4</td>
|
173
|
+
<td width="3em"> </td>
|
174
|
+
<td class="context-item-desc">
|
175
|
+
option: check every N-gram key
|
176
|
+
|
177
|
+
</td>
|
178
|
+
</tr>
|
179
|
+
<tr class="top-aligned-row context-row">
|
180
|
+
<td class="context-item-name">SIMPLE</td>
|
181
|
+
<td>=</td>
|
182
|
+
<td class="context-item-value">1 << 10</td>
|
183
|
+
<td width="3em"> </td>
|
184
|
+
<td class="context-item-desc">
|
185
|
+
option: check N-gram keys skipping by one
|
186
|
+
|
187
|
+
</td>
|
188
|
+
</tr>
|
189
|
+
</table>
|
190
|
+
</div>
|
191
|
+
</div>
|
192
|
+
|
193
|
+
|
194
|
+
|
195
|
+
|
196
|
+
|
197
|
+
|
198
|
+
<!-- if method_list -->
|
199
|
+
<div id="methods">
|
200
|
+
<h3 class="section-bar">Public Class methods</h3>
|
201
|
+
|
202
|
+
<div id="method-M000063" class="method-detail">
|
203
|
+
<a name="M000063"></a>
|
204
|
+
|
205
|
+
<div class="method-heading">
|
206
|
+
<a href="#M000063" class="method-signature">
|
207
|
+
<span class="method-name">new</span><span class="method-args">()</span>
|
208
|
+
</a>
|
209
|
+
</div>
|
210
|
+
|
211
|
+
<div class="method-description">
|
212
|
+
<p>
|
213
|
+
Create a search condition object.
|
214
|
+
</p>
|
215
|
+
<p><a class="source-toggle" href="#"
|
216
|
+
onclick="toggleCode('M000063-source');return false;">[Source]</a></p>
|
217
|
+
<div class="method-source-code" id="M000063-source">
|
218
|
+
<pre>
|
219
|
+
<span class="ruby-comment cmt"># File lib/vendor/estraierpure.rb, line 326</span>
|
220
|
+
326: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>()
|
221
|
+
327: <span class="ruby-ivar">@phrase</span> = <span class="ruby-keyword kw">nil</span>
|
222
|
+
328: <span class="ruby-ivar">@attrs</span> = []
|
223
|
+
329: <span class="ruby-ivar">@order</span> = <span class="ruby-keyword kw">nil</span>
|
224
|
+
330: <span class="ruby-ivar">@max</span> = <span class="ruby-value">-1</span>
|
225
|
+
331: <span class="ruby-ivar">@skip</span> = <span class="ruby-value">0</span>
|
226
|
+
332: <span class="ruby-ivar">@options</span> = <span class="ruby-value">0</span>
|
227
|
+
333: <span class="ruby-keyword kw">end</span>
|
228
|
+
</pre>
|
229
|
+
</div>
|
230
|
+
</div>
|
231
|
+
</div>
|
232
|
+
|
233
|
+
<h3 class="section-bar">Public Instance methods</h3>
|
234
|
+
|
235
|
+
<div id="method-M000052" class="method-detail">
|
236
|
+
<a name="M000052"></a>
|
237
|
+
|
238
|
+
<div class="method-heading">
|
239
|
+
<a href="#M000052" class="method-signature">
|
240
|
+
<span class="method-name">add_attr</span><span class="method-args">(expr)</span>
|
241
|
+
</a>
|
242
|
+
</div>
|
243
|
+
|
244
|
+
<div class="method-description">
|
245
|
+
<p>
|
246
|
+
Add an expression for an attribute. `expr’ specifies an expression
|
247
|
+
for an attribute. The return value is always `nil’.
|
248
|
+
</p>
|
249
|
+
<p><a class="source-toggle" href="#"
|
250
|
+
onclick="toggleCode('M000052-source');return false;">[Source]</a></p>
|
251
|
+
<div class="method-source-code" id="M000052-source">
|
252
|
+
<pre>
|
253
|
+
<span class="ruby-comment cmt"># File lib/vendor/estraierpure.rb, line 243</span>
|
254
|
+
243: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_attr</span>(<span class="ruby-identifier">expr</span>)
|
255
|
+
244: <span class="ruby-constant">Utility</span><span class="ruby-operator">::</span><span class="ruby-identifier">check_types</span>({ <span class="ruby-identifier">expr</span>=<span class="ruby-operator">></span><span class="ruby-constant">String</span> }) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
|
256
|
+
245: <span class="ruby-identifier">expr</span> = <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/[ \t\r\n\v\f]+/</span>, <span class="ruby-value str">" "</span>)
|
257
|
+
246: <span class="ruby-identifier">expr</span> = <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">squeeze</span>(<span class="ruby-value str">" "</span>)
|
258
|
+
247: <span class="ruby-ivar">@attrs</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">expr</span>)
|
259
|
+
248: <span class="ruby-keyword kw">nil</span>
|
260
|
+
249: <span class="ruby-keyword kw">end</span>
|
261
|
+
</pre>
|
262
|
+
</div>
|
263
|
+
</div>
|
264
|
+
</div>
|
265
|
+
|
266
|
+
<div id="method-M000058" class="method-detail">
|
267
|
+
<a name="M000058"></a>
|
268
|
+
|
269
|
+
<div class="method-heading">
|
270
|
+
<a href="#M000058" class="method-signature">
|
271
|
+
<span class="method-name">attrs</span><span class="method-args">()</span>
|
272
|
+
</a>
|
273
|
+
</div>
|
274
|
+
|
275
|
+
<div class="method-description">
|
276
|
+
<p>
|
277
|
+
Get expressions for attributes. The return value is expressions for
|
278
|
+
attributes.
|
279
|
+
</p>
|
280
|
+
<p><a class="source-toggle" href="#"
|
281
|
+
onclick="toggleCode('M000058-source');return false;">[Source]</a></p>
|
282
|
+
<div class="method-source-code" id="M000058-source">
|
283
|
+
<pre>
|
284
|
+
<span class="ruby-comment cmt"># File lib/vendor/estraierpure.rb, line 298</span>
|
285
|
+
298: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attrs</span>()
|
286
|
+
299: <span class="ruby-ivar">@attrs</span>
|
287
|
+
300: <span class="ruby-keyword kw">end</span>
|
288
|
+
</pre>
|
289
|
+
</div>
|
290
|
+
</div>
|
291
|
+
</div>
|
292
|
+
|
293
|
+
<div id="method-M000060" class="method-detail">
|
294
|
+
<a name="M000060"></a>
|
295
|
+
|
296
|
+
<div class="method-heading">
|
297
|
+
<a href="#M000060" class="method-signature">
|
298
|
+
<span class="method-name">max</span><span class="method-args">()</span>
|
299
|
+
</a>
|
300
|
+
</div>
|
301
|
+
|
302
|
+
<div class="method-description">
|
303
|
+
<p>
|
304
|
+
Get the maximum number of retrieval. The return value is the maximum number
|
305
|
+
of retrieval.
|
306
|
+
</p>
|
307
|
+
<p><a class="source-toggle" href="#"
|
308
|
+
onclick="toggleCode('M000060-source');return false;">[Source]</a></p>
|
309
|
+
<div class="method-source-code" id="M000060-source">
|
310
|
+
<pre>
|
311
|
+
<span class="ruby-comment cmt"># File lib/vendor/estraierpure.rb, line 308</span>
|
312
|
+
308: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">max</span>()
|
313
|
+
309: <span class="ruby-ivar">@max</span>
|
314
|
+
310: <span class="ruby-keyword kw">end</span>
|
315
|
+
</pre>
|
316
|
+
</div>
|
317
|
+
</div>
|
318
|
+
</div>
|
319
|
+
|
320
|
+
<div id="method-M000062" class="method-detail">
|
321
|
+
<a name="M000062"></a>
|
322
|
+
|
323
|
+
<div class="method-heading">
|
324
|
+
<a href="#M000062" class="method-signature">
|
325
|
+
<span class="method-name">options</span><span class="method-args">()</span>
|
326
|
+
</a>
|
327
|
+
</div>
|
328
|
+
|
329
|
+
<div class="method-description">
|
330
|
+
<p>
|
331
|
+
Get options of retrieval. The return value is options by bitwise or.
|
332
|
+
</p>
|
333
|
+
<p><a class="source-toggle" href="#"
|
334
|
+
onclick="toggleCode('M000062-source');return false;">[Source]</a></p>
|
335
|
+
<div class="method-source-code" id="M000062-source">
|
336
|
+
<pre>
|
337
|
+
<span class="ruby-comment cmt"># File lib/vendor/estraierpure.rb, line 318</span>
|
338
|
+
318: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options</span>()
|
339
|
+
319: <span class="ruby-ivar">@options</span>
|
340
|
+
320: <span class="ruby-keyword kw">end</span>
|
341
|
+
</pre>
|
342
|
+
</div>
|
343
|
+
</div>
|
344
|
+
</div>
|
345
|
+
|
346
|
+
<div id="method-M000059" class="method-detail">
|
347
|
+
<a name="M000059"></a>
|
348
|
+
|
349
|
+
<div class="method-heading">
|
350
|
+
<a href="#M000059" class="method-signature">
|
351
|
+
<span class="method-name">order</span><span class="method-args">()</span>
|
352
|
+
</a>
|
353
|
+
</div>
|
354
|
+
|
355
|
+
<div class="method-description">
|
356
|
+
<p>
|
357
|
+
Get the order expression. The return value is the order expression.
|
358
|
+
</p>
|
359
|
+
<p><a class="source-toggle" href="#"
|
360
|
+
onclick="toggleCode('M000059-source');return false;">[Source]</a></p>
|
361
|
+
<div class="method-source-code" id="M000059-source">
|
362
|
+
<pre>
|
363
|
+
<span class="ruby-comment cmt"># File lib/vendor/estraierpure.rb, line 303</span>
|
364
|
+
303: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">order</span>()
|
365
|
+
304: <span class="ruby-ivar">@order</span>
|
366
|
+
305: <span class="ruby-keyword kw">end</span>
|
367
|
+
</pre>
|
368
|
+
</div>
|
369
|
+
</div>
|
370
|
+
</div>
|
371
|
+
|
372
|
+
<div id="method-M000057" class="method-detail">
|
373
|
+
<a name="M000057"></a>
|
374
|
+
|
375
|
+
<div class="method-heading">
|
376
|
+
<a href="#M000057" class="method-signature">
|
377
|
+
<span class="method-name">phrase</span><span class="method-args">()</span>
|
378
|
+
</a>
|
379
|
+
</div>
|
380
|
+
|
381
|
+
<div class="method-description">
|
382
|
+
<p>
|
383
|
+
Get the search phrase. The return value is the search phrase.
|
384
|
+
</p>
|
385
|
+
<p><a class="source-toggle" href="#"
|
386
|
+
onclick="toggleCode('M000057-source');return false;">[Source]</a></p>
|
387
|
+
<div class="method-source-code" id="M000057-source">
|
388
|
+
<pre>
|
389
|
+
<span class="ruby-comment cmt"># File lib/vendor/estraierpure.rb, line 293</span>
|
390
|
+
293: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">phrase</span>()
|
391
|
+
294: <span class="ruby-ivar">@phrase</span>
|
392
|
+
295: <span class="ruby-keyword kw">end</span>
|
393
|
+
</pre>
|
394
|
+
</div>
|
395
|
+
</div>
|
396
|
+
</div>
|
397
|
+
|
398
|
+
<div id="method-M000054" class="method-detail">
|
399
|
+
<a name="M000054"></a>
|
400
|
+
|
401
|
+
<div class="method-heading">
|
402
|
+
<a href="#M000054" class="method-signature">
|
403
|
+
<span class="method-name">set_max</span><span class="method-args">(max)</span>
|
404
|
+
</a>
|
405
|
+
</div>
|
406
|
+
|
407
|
+
<div class="method-description">
|
408
|
+
<p>
|
409
|
+
Set the maximum number of retrieval. `max’ specifies the maximum
|
410
|
+
number of retrieval. By default, the number of retrieval is not limited.
|
411
|
+
The return value is always `nil’.
|
412
|
+
</p>
|
413
|
+
<p><a class="source-toggle" href="#"
|
414
|
+
onclick="toggleCode('M000054-source');return false;">[Source]</a></p>
|
415
|
+
<div class="method-source-code" id="M000054-source">
|
416
|
+
<pre>
|
417
|
+
<span class="ruby-comment cmt"># File lib/vendor/estraierpure.rb, line 264</span>
|
418
|
+
264: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_max</span>(<span class="ruby-identifier">max</span>)
|
419
|
+
265: <span class="ruby-constant">Utility</span><span class="ruby-operator">::</span><span class="ruby-identifier">check_types</span>({ <span class="ruby-identifier">max</span>=<span class="ruby-operator">></span><span class="ruby-constant">Integer</span> }) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
|
420
|
+
266: <span class="ruby-ivar">@max</span> = <span class="ruby-identifier">max</span> <span class="ruby-keyword kw">if</span>(<span class="ruby-identifier">max</span> <span class="ruby-operator">>=</span> <span class="ruby-value">0</span>)
|
421
|
+
267: <span class="ruby-keyword kw">nil</span>
|
422
|
+
268: <span class="ruby-keyword kw">end</span>
|
423
|
+
</pre>
|
424
|
+
</div>
|
425
|
+
</div>
|
426
|
+
</div>
|
427
|
+
|
428
|
+
<div id="method-M000056" class="method-detail">
|
429
|
+
<a name="M000056"></a>
|
430
|
+
|
431
|
+
<div class="method-heading">
|
432
|
+
<a href="#M000056" class="method-signature">
|
433
|
+
<span class="method-name">set_options</span><span class="method-args">(options)</span>
|
434
|
+
</a>
|
435
|
+
</div>
|
436
|
+
|
437
|
+
<div class="method-description">
|
438
|
+
<p>
|
439
|
+
Set options of retrieval. `options’ specifies options:
|
440
|
+
`Condition::SURE’ specifies that it checks every N-gram key,
|
441
|
+
`Condition::USU’, which is the default, specifies that it checks
|
442
|
+
N-gram keys with skipping one key, `Condition::FAST’ skips two keys,
|
443
|
+
`Condition::AGITO’ skips three keys, `Condition::NOIDF’
|
444
|
+
specifies not to perform TF-IDF tuning, `Condition::SIMPLE’ specifies
|
445
|
+
to use simplified phrase. Each option can be specified at the same time by
|
446
|
+
bitwise or. If keys are skipped, though search speed is improved, the
|
447
|
+
relevance ratio grows less. The return value is always `nil’.
|
448
|
+
</p>
|
449
|
+
<p><a class="source-toggle" href="#"
|
450
|
+
onclick="toggleCode('M000056-source');return false;">[Source]</a></p>
|
451
|
+
<div class="method-source-code" id="M000056-source">
|
452
|
+
<pre>
|
453
|
+
<span class="ruby-comment cmt"># File lib/vendor/estraierpure.rb, line 286</span>
|
454
|
+
286: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_options</span>(<span class="ruby-identifier">options</span>)
|
455
|
+
287: <span class="ruby-constant">Utility</span><span class="ruby-operator">::</span><span class="ruby-identifier">check_types</span>({ <span class="ruby-identifier">options</span>=<span class="ruby-operator">></span><span class="ruby-constant">Integer</span> }) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
|
456
|
+
288: <span class="ruby-ivar">@options</span> <span class="ruby-operator">|=</span> <span class="ruby-identifier">options</span>
|
457
|
+
289: <span class="ruby-keyword kw">nil</span>
|
458
|
+
290: <span class="ruby-keyword kw">end</span>
|
459
|
+
</pre>
|
460
|
+
</div>
|
461
|
+
</div>
|
462
|
+
</div>
|
463
|
+
|
464
|
+
<div id="method-M000053" class="method-detail">
|
465
|
+
<a name="M000053"></a>
|
466
|
+
|
467
|
+
<div class="method-heading">
|
468
|
+
<a href="#M000053" class="method-signature">
|
469
|
+
<span class="method-name">set_order</span><span class="method-args">(expr)</span>
|
470
|
+
</a>
|
471
|
+
</div>
|
472
|
+
|
473
|
+
<div class="method-description">
|
474
|
+
<p>
|
475
|
+
Set the order of a condition object. `expr’ specifies an expression
|
476
|
+
for the order. By default, the order is by score descending. The return
|
477
|
+
value is always `nil’.
|
478
|
+
</p>
|
479
|
+
<p><a class="source-toggle" href="#"
|
480
|
+
onclick="toggleCode('M000053-source');return false;">[Source]</a></p>
|
481
|
+
<div class="method-source-code" id="M000053-source">
|
482
|
+
<pre>
|
483
|
+
<span class="ruby-comment cmt"># File lib/vendor/estraierpure.rb, line 253</span>
|
484
|
+
253: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_order</span>(<span class="ruby-identifier">expr</span>)
|
485
|
+
254: <span class="ruby-constant">Utility</span><span class="ruby-operator">::</span><span class="ruby-identifier">check_types</span>({ <span class="ruby-identifier">expr</span>=<span class="ruby-operator">></span><span class="ruby-constant">String</span> }) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
|
486
|
+
255: <span class="ruby-identifier">expr</span> = <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/[ \t\r\n\v\f]+/</span>, <span class="ruby-value str">" "</span>)
|
487
|
+
256: <span class="ruby-identifier">expr</span> = <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">squeeze</span>(<span class="ruby-value str">" "</span>)
|
488
|
+
257: <span class="ruby-ivar">@order</span> = <span class="ruby-identifier">expr</span>
|
489
|
+
258: <span class="ruby-keyword kw">nil</span>
|
490
|
+
259: <span class="ruby-keyword kw">end</span>
|
491
|
+
</pre>
|
492
|
+
</div>
|
493
|
+
</div>
|
494
|
+
</div>
|
495
|
+
|
496
|
+
<div id="method-M000051" class="method-detail">
|
497
|
+
<a name="M000051"></a>
|
498
|
+
|
499
|
+
<div class="method-heading">
|
500
|
+
<a href="#M000051" class="method-signature">
|
501
|
+
<span class="method-name">set_phrase</span><span class="method-args">(phrase)</span>
|
502
|
+
</a>
|
503
|
+
</div>
|
504
|
+
|
505
|
+
<div class="method-description">
|
506
|
+
<p>
|
507
|
+
Set the search phrase. `phrase’ specifies a search phrase. The return
|
508
|
+
value is always `nil’.
|
509
|
+
</p>
|
510
|
+
<p><a class="source-toggle" href="#"
|
511
|
+
onclick="toggleCode('M000051-source');return false;">[Source]</a></p>
|
512
|
+
<div class="method-source-code" id="M000051-source">
|
513
|
+
<pre>
|
514
|
+
<span class="ruby-comment cmt"># File lib/vendor/estraierpure.rb, line 233</span>
|
515
|
+
233: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_phrase</span>(<span class="ruby-identifier">phrase</span>)
|
516
|
+
234: <span class="ruby-constant">Utility</span><span class="ruby-operator">::</span><span class="ruby-identifier">check_types</span>({ <span class="ruby-identifier">phrase</span>=<span class="ruby-operator">></span><span class="ruby-constant">String</span> }) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
|
517
|
+
235: <span class="ruby-identifier">phrase</span> = <span class="ruby-identifier">phrase</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/[ \t\r\n\v\f]+/</span>, <span class="ruby-value str">" "</span>)
|
518
|
+
236: <span class="ruby-identifier">phrase</span> = <span class="ruby-identifier">phrase</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">squeeze</span>(<span class="ruby-value str">" "</span>)
|
519
|
+
237: <span class="ruby-ivar">@phrase</span> = <span class="ruby-identifier">phrase</span>
|
520
|
+
238: <span class="ruby-keyword kw">nil</span>
|
521
|
+
239: <span class="ruby-keyword kw">end</span>
|
522
|
+
</pre>
|
523
|
+
</div>
|
524
|
+
</div>
|
525
|
+
</div>
|
526
|
+
|
527
|
+
<div id="method-M000055" class="method-detail">
|
528
|
+
<a name="M000055"></a>
|
529
|
+
|
530
|
+
<div class="method-heading">
|
531
|
+
<a href="#M000055" class="method-signature">
|
532
|
+
<span class="method-name">set_skip</span><span class="method-args">(skip)</span>
|
533
|
+
</a>
|
534
|
+
</div>
|
535
|
+
|
536
|
+
<div class="method-description">
|
537
|
+
<p>
|
538
|
+
Set the number of skipped documents. `skip’ specifies the number of
|
539
|
+
documents to be skipped in the search result. The return value is always
|
540
|
+
`nil’.
|
541
|
+
</p>
|
542
|
+
<p><a class="source-toggle" href="#"
|
543
|
+
onclick="toggleCode('M000055-source');return false;">[Source]</a></p>
|
544
|
+
<div class="method-source-code" id="M000055-source">
|
545
|
+
<pre>
|
546
|
+
<span class="ruby-comment cmt"># File lib/vendor/estraierpure.rb, line 272</span>
|
547
|
+
272: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_skip</span>(<span class="ruby-identifier">skip</span>)
|
548
|
+
273: <span class="ruby-constant">Utility</span><span class="ruby-operator">::</span><span class="ruby-identifier">check_types</span>({ <span class="ruby-identifier">skip</span>=<span class="ruby-operator">></span><span class="ruby-constant">Integer</span> }) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
|
549
|
+
274: <span class="ruby-ivar">@skip</span> = <span class="ruby-identifier">skip</span> <span class="ruby-keyword kw">if</span>(<span class="ruby-identifier">skip</span> <span class="ruby-operator">>=</span> <span class="ruby-value">0</span>)
|
550
|
+
275: <span class="ruby-keyword kw">nil</span>
|
551
|
+
276: <span class="ruby-keyword kw">end</span>
|
552
|
+
</pre>
|
553
|
+
</div>
|
554
|
+
</div>
|
555
|
+
</div>
|
556
|
+
|
557
|
+
<div id="method-M000061" class="method-detail">
|
558
|
+
<a name="M000061"></a>
|
559
|
+
|
560
|
+
<div class="method-heading">
|
561
|
+
<a href="#M000061" class="method-signature">
|
562
|
+
<span class="method-name">skip</span><span class="method-args">()</span>
|
563
|
+
</a>
|
564
|
+
</div>
|
565
|
+
|
566
|
+
<div class="method-description">
|
567
|
+
<p>
|
568
|
+
Get the number of skipped documents. The return value is the number of
|
569
|
+
documents to be skipped in the search result.
|
570
|
+
</p>
|
571
|
+
<p><a class="source-toggle" href="#"
|
572
|
+
onclick="toggleCode('M000061-source');return false;">[Source]</a></p>
|
573
|
+
<div class="method-source-code" id="M000061-source">
|
574
|
+
<pre>
|
575
|
+
<span class="ruby-comment cmt"># File lib/vendor/estraierpure.rb, line 313</span>
|
576
|
+
313: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">skip</span>()
|
577
|
+
314: <span class="ruby-ivar">@skip</span>
|
578
|
+
315: <span class="ruby-keyword kw">end</span>
|
579
|
+
</pre>
|
580
|
+
</div>
|
581
|
+
</div>
|
582
|
+
</div>
|
583
|
+
|
584
|
+
<div id="method-M000050" class="method-detail">
|
585
|
+
<a name="M000050"></a>
|
586
|
+
|
587
|
+
<div class="method-heading">
|
588
|
+
<a href="#M000050" class="method-signature">
|
589
|
+
<span class="method-name">to_s</span><span class="method-args">()</span>
|
590
|
+
</a>
|
591
|
+
</div>
|
592
|
+
|
593
|
+
<div class="method-description">
|
594
|
+
<p><a class="source-toggle" href="#"
|
595
|
+
onclick="toggleCode('M000050-source');return false;">[Source]</a></p>
|
596
|
+
<div class="method-source-code" id="M000050-source">
|
597
|
+
<pre>
|
598
|
+
<span class="ruby-comment cmt"># File lib/acts_as_searchable.rb, line 356</span>
|
599
|
+
356: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
|
600
|
+
357: <span class="ruby-value str">"phrase: %s, attrs: %s, max: %s, options: %s, order: %s, skip: %s"</span> <span class="ruby-operator">%</span> [ <span class="ruby-identifier">phrase</span>, <span class="ruby-identifier">attrs</span> <span class="ruby-operator">*</span> <span class="ruby-value str">', '</span>, <span class="ruby-identifier">max</span>, <span class="ruby-identifier">options</span>, <span class="ruby-identifier">order</span>, <span class="ruby-identifier">skip</span> ]
|
601
|
+
358: <span class="ruby-keyword kw">end</span>
|
602
|
+
</pre>
|
603
|
+
</div>
|
604
|
+
</div>
|
605
|
+
</div>
|
606
|
+
|
607
|
+
|
608
|
+
</div>
|
609
|
+
|
610
|
+
|
611
|
+
</div>
|
612
|
+
|
613
|
+
|
614
|
+
<div id="validator-badges">
|
615
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
616
|
+
</div>
|
617
|
+
|
618
|
+
</body>
|
619
|
+
</html>
|