@@ -13,6 +13,7 @@ import (
13
13
"net/http"
14
14
"net/url"
15
15
"strconv"
16
+ "time"
16
17
"util"
17
18
18
19
. "db"
@@ -51,44 +52,51 @@ func (self SearcherLogic) IndexingArticle(isAll bool) {
51
52
err error
52
53
)
53
54
54
- if isAll {
55
- id := 0
56
- for {
57
- articleList = make ([] * model. Article , 0 )
55
+ id := 0
56
+ for {
57
+ articleList = make ([] * model. Article , 0 )
58
+ if isAll {
58
59
err = MasterDB .Where ("id>?" , id ).Limit (self .maxRows ).OrderBy ("id ASC" ).Find (& articleList )
59
- if err != nil {
60
- logger .Errorln ("IndexingArticle error:" , err )
61
- break
62
- }
60
+ } else {
61
+ timeAgo := time .Now ().Add (- 5 * time .Minute ).Format ("2006-01-02 15:04:05" )
62
+ err = MasterDB .Where ("mtime>?" , timeAgo ).Find (& articleList )
63
+ }
64
+ if err != nil {
65
+ logger .Errorln ("IndexingArticle error:" , err )
66
+ break
67
+ }
63
68
64
- if len (articleList ) == 0 {
65
- break
66
- }
69
+ if len (articleList ) == 0 {
70
+ break
71
+ }
67
72
68
- for _ , article := range articleList {
69
- logger .Infoln ("deal article_id:" , article .Id )
73
+ for _ , article := range articleList {
74
+ logger .Infoln ("deal article_id:" , article .Id )
70
75
71
- if id < article .Id {
72
- id = article .Id
73
- }
76
+ if id < article .Id {
77
+ id = article .Id
78
+ }
74
79
75
- if article .Tags == "" {
76
- // 自动生成
77
- article .Tags = model .AutoTag (article .Title , article .Txt , 4 )
78
- if article .Tags != "" {
79
- MasterDB .Id (article .Id ).Cols ("tags" ).Update (article )
80
- }
80
+ if article .Tags == "" {
81
+ // 自动生成
82
+ article .Tags = model .AutoTag (article .Title , article .Txt , 4 )
83
+ if article .Tags != "" {
84
+ MasterDB .Id (article .Id ).Cols ("tags" ).Update (article )
81
85
}
86
+ }
82
87
83
- document := model .NewDocument (article , nil )
84
- if article .Status != model .ArticleStatusOffline {
85
- solrClient .PushAdd (model .NewDefaultArgsAddCommand (document ))
86
- } else {
87
- solrClient .PushDel (model .NewDelCommand (document ))
88
- }
88
+ document := model .NewDocument (article , nil )
89
+ if article .Status != model .ArticleStatusOffline {
90
+ solrClient .PushAdd (model .NewDefaultArgsAddCommand (document ))
91
+ } else {
92
+ solrClient .PushDel (model .NewDelCommand (document ))
89
93
}
94
+ }
90
95
91
- solrClient .Post ()
96
+ solrClient .Post ()
97
+
98
+ if ! isAll {
99
+ break
92
100
}
93
101
}
94
102
}
@@ -104,54 +112,61 @@ func (self SearcherLogic) IndexingTopic(isAll bool) {
104
112
err error
105
113
)
106
114
107
- if isAll {
108
- id := 0
109
- for {
110
- topicList = make ([]* model.Topic , 0 )
111
- topicExList = make (map [int ]* model.TopicUpEx )
115
+ id := 0
116
+ for {
117
+ topicList = make ([]* model.Topic , 0 )
118
+ topicExList = make (map [int ]* model.TopicUpEx )
112
119
120
+ if isAll {
113
121
err = MasterDB .Where ("tid>?" , id ).OrderBy ("tid ASC" ).Limit (self .maxRows ).Find (& topicList )
114
- if err != nil {
115
- logger .Errorln ("IndexingTopic error:" , err )
116
- break
117
- }
122
+ } else {
123
+ timeAgo := time .Now ().Add (- 5 * time .Minute ).Format ("2006-01-02 15:04:05" )
124
+ err = MasterDB .Where ("mtime>?" , timeAgo ).Find (& topicList )
125
+ }
126
+ if err != nil {
127
+ logger .Errorln ("IndexingTopic error:" , err )
128
+ break
129
+ }
118
130
119
- if len (topicList ) == 0 {
120
- break
121
- }
131
+ if len (topicList ) == 0 {
132
+ break
133
+ }
122
134
123
- tids := util .Models2Intslice (topicList , "Tid" )
135
+ tids := util .Models2Intslice (topicList , "Tid" )
124
136
125
- err = MasterDB .In ("tid" , tids ).Find (& topicExList )
126
- if err != nil {
127
- logger .Errorln ("IndexingTopic error:" , err )
128
- break
129
- }
137
+ err = MasterDB .In ("tid" , tids ).Find (& topicExList )
138
+ if err != nil {
139
+ logger .Errorln ("IndexingTopic error:" , err )
140
+ break
141
+ }
130
142
131
- for _ , topic := range topicList {
132
- logger .Infoln ("deal topic_id:" , topic .Tid )
143
+ for _ , topic := range topicList {
144
+ logger .Infoln ("deal topic_id:" , topic .Tid )
133
145
134
- if id < topic .Tid {
135
- id = topic .Tid
136
- }
146
+ if id < topic .Tid {
147
+ id = topic .Tid
148
+ }
137
149
138
- if topic .Tags == "" {
139
- // 自动生成
140
- topic .Tags = model .AutoTag (topic .Title , topic .Content , 4 )
141
- if topic .Tags != "" {
142
- MasterDB .Id (topic .Tid ).Cols ("tags" ).Update (topic )
143
- }
150
+ if topic .Tags == "" {
151
+ // 自动生成
152
+ topic .Tags = model .AutoTag (topic .Title , topic .Content , 4 )
153
+ if topic .Tags != "" {
154
+ MasterDB .Id (topic .Tid ).Cols ("tags" ).Update (topic )
144
155
}
156
+ }
145
157
146
- topicEx := topicExList [topic .Tid ]
158
+ topicEx := topicExList [topic .Tid ]
147
159
148
- document := model .NewDocument (topic , topicEx )
149
- addCommand := model .NewDefaultArgsAddCommand (document )
160
+ document := model .NewDocument (topic , topicEx )
161
+ addCommand := model .NewDefaultArgsAddCommand (document )
150
162
151
- solrClient .PushAdd (addCommand )
152
- }
163
+ solrClient .PushAdd (addCommand )
164
+ }
153
165
154
- solrClient .Post ()
166
+ solrClient .Post ()
167
+
168
+ if ! isAll {
169
+ break
155
170
}
156
171
}
157
172
}
@@ -166,54 +181,61 @@ func (self SearcherLogic) IndexingResource(isAll bool) {
166
181
err error
167
182
)
168
183
169
- if isAll {
170
- id := 0
171
- for {
172
- resourceList = make ([]* model.Resource , 0 )
173
- resourceExList = make (map [int ]* model.ResourceEx )
184
+ id := 0
185
+ for {
186
+ resourceList = make ([]* model.Resource , 0 )
187
+ resourceExList = make (map [int ]* model.ResourceEx )
174
188
189
+ if isAll {
175
190
err = MasterDB .Where ("id>?" , id ).OrderBy ("id ASC" ).Limit (self .maxRows ).Find (& resourceList )
176
- if err != nil {
177
- logger .Errorln ("IndexingResource error:" , err )
178
- break
179
- }
191
+ } else {
192
+ timeAgo := time .Now ().Add (- 5 * time .Minute ).Format ("2006-01-02 15:04:05" )
193
+ err = MasterDB .Where ("mtime>?" , timeAgo ).Find (& resourceList )
194
+ }
195
+ if err != nil {
196
+ logger .Errorln ("IndexingResource error:" , err )
197
+ break
198
+ }
180
199
181
- if len (resourceList ) == 0 {
182
- break
183
- }
200
+ if len (resourceList ) == 0 {
201
+ break
202
+ }
184
203
185
- ids := util .Models2Intslice (resourceList , "Id" )
204
+ ids := util .Models2Intslice (resourceList , "Id" )
186
205
187
- err = MasterDB .In ("id" , ids ).Find (& resourceExList )
188
- if err != nil {
189
- logger .Errorln ("IndexingResource error:" , err )
190
- break
191
- }
206
+ err = MasterDB .In ("id" , ids ).Find (& resourceExList )
207
+ if err != nil {
208
+ logger .Errorln ("IndexingResource error:" , err )
209
+ break
210
+ }
192
211
193
- for _ , resource := range resourceList {
194
- logger .Infoln ("deal resource_id:" , resource .Id )
212
+ for _ , resource := range resourceList {
213
+ logger .Infoln ("deal resource_id:" , resource .Id )
195
214
196
- if id < resource .Id {
197
- id = resource .Id
198
- }
215
+ if id < resource .Id {
216
+ id = resource .Id
217
+ }
199
218
200
- if resource .Tags == "" {
201
- // 自动生成
202
- resource .Tags = model .AutoTag (resource .Title + resource .CatName , resource .Content , 4 )
203
- if resource .Tags != "" {
204
- MasterDB .Id (resource .Id ).Cols ("tags" ).Update (resource )
205
- }
219
+ if resource .Tags == "" {
220
+ // 自动生成
221
+ resource .Tags = model .AutoTag (resource .Title + resource .CatName , resource .Content , 4 )
222
+ if resource .Tags != "" {
223
+ MasterDB .Id (resource .Id ).Cols ("tags" ).Update (resource )
206
224
}
225
+ }
207
226
208
- resourceEx := resourceExList [resource .Id ]
227
+ resourceEx := resourceExList [resource .Id ]
209
228
210
- document := model .NewDocument (resource , resourceEx )
211
- addCommand := model .NewDefaultArgsAddCommand (document )
229
+ document := model .NewDocument (resource , resourceEx )
230
+ addCommand := model .NewDefaultArgsAddCommand (document )
212
231
213
- solrClient .PushAdd (addCommand )
214
- }
232
+ solrClient .PushAdd (addCommand )
233
+ }
234
+
235
+ solrClient .Post ()
215
236
216
- solrClient .Post ()
237
+ if ! isAll {
238
+ break
217
239
}
218
240
}
219
241
}
@@ -227,46 +249,55 @@ func (self SearcherLogic) IndexingOpenProject(isAll bool) {
227
249
err error
228
250
)
229
251
230
- if isAll {
231
- id := 0
232
- for {
233
- projectList = make ([]* model.OpenProject , 0 )
252
+ id := 0
253
+ for {
254
+ projectList = make ([]* model.OpenProject , 0 )
255
+
256
+ if isAll {
234
257
err = MasterDB .Where ("id>?" , id ).OrderBy ("id ASC" ).Limit (self .maxRows ).Find (& projectList )
235
- if err != nil {
236
- logger .Errorln ("IndexingArticle error:" , err )
237
- break
238
- }
258
+ } else {
259
+ timeAgo := time .Now ().Add (- 5 * time .Minute ).Format ("2006-01-02 15:04:05" )
260
+ err = MasterDB .Where ("mtime>?" , timeAgo ).Find (& projectList )
261
+ }
262
+ if err != nil {
263
+ logger .Errorln ("IndexingArticle error:" , err )
264
+ break
265
+ }
239
266
240
- if len (projectList ) == 0 {
241
- break
242
- }
267
+ if len (projectList ) == 0 {
268
+ break
269
+ }
243
270
244
- for _ , project := range projectList {
245
- logger .Infoln ("deal project_id:" , project .Id )
271
+ for _ , project := range projectList {
272
+ logger .Infoln ("deal project_id:" , project .Id )
246
273
247
- if id < project .Id {
248
- id = project .Id
249
- }
274
+ if id < project .Id {
275
+ id = project .Id
276
+ }
250
277
251
- if project .Tags == "" {
252
- // 自动生成
253
- project .Tags = model .AutoTag (project .Name + project .Category , project .Desc , 4 )
254
- if project .Tags != "" {
255
- MasterDB .Id (project .Id ).Cols ("tags" ).Update (project )
256
- }
278
+ if project .Tags == "" {
279
+ // 自动生成
280
+ project .Tags = model .AutoTag (project .Name + project .Category , project .Desc , 4 )
281
+ if project .Tags != "" {
282
+ MasterDB .Id (project .Id ).Cols ("tags" ).Update (project )
257
283
}
284
+ }
258
285
259
- document := model .NewDocument (project , nil )
260
- if project .Status != model .ProjectStatusOffline {
261
- solrClient .PushAdd (model .NewDefaultArgsAddCommand (document ))
262
- } else {
263
- solrClient .PushDel (model .NewDelCommand (document ))
264
- }
286
+ document := model .NewDocument (project , nil )
287
+ if project .Status != model .ProjectStatusOffline {
288
+ solrClient .PushAdd (model .NewDefaultArgsAddCommand (document ))
289
+ } else {
290
+ solrClient .PushDel (model .NewDelCommand (document ))
265
291
}
292
+ }
266
293
267
- solrClient .Post ()
294
+ solrClient .Post ()
295
+
296
+ if ! isAll {
297
+ break
268
298
}
269
299
}
300
+
270
301
}
271
302
272
303
const searchContentLen = 350
0 commit comments