()
| 287 | } |
| 288 | |
| 289 | func (sr *SearchRequest) ConvertToBleveSearchRequest() (*bleve.SearchRequest, error) { |
| 290 | // size/from take precedence, but if not specified, overwrite with |
| 291 | // limit/offset settings |
| 292 | r := &bleve.SearchRequest{ |
| 293 | Highlight: sr.Highlight, |
| 294 | Fields: sr.Fields, |
| 295 | Facets: sr.Facets, |
| 296 | Explain: sr.Explain, |
| 297 | IncludeLocations: sr.IncludeLocations, |
| 298 | Score: sr.Score, |
| 299 | SearchAfter: sr.SearchAfter, |
| 300 | SearchBefore: sr.SearchBefore, |
| 301 | } |
| 302 | |
| 303 | var err error |
| 304 | r.Query, err = query.ParseQuery(sr.Q) |
| 305 | if err != nil { |
| 306 | return nil, err |
| 307 | } |
| 308 | |
| 309 | if sr.Size == nil { |
| 310 | if sr.Limit == nil || *sr.Limit < 0 { |
| 311 | r.Size = 10 |
| 312 | } else { |
| 313 | r.Size = *sr.Limit |
| 314 | } |
| 315 | } else if *sr.Size < 0 { |
| 316 | r.Size = 10 |
| 317 | } else { |
| 318 | r.Size = *sr.Size |
| 319 | } |
| 320 | |
| 321 | if sr.From == nil { |
| 322 | if sr.Offset == nil || *sr.Offset < 0 { |
| 323 | r.From = 0 |
| 324 | } else { |
| 325 | r.From = *sr.Offset |
| 326 | } |
| 327 | } else if *sr.From < 0 { |
| 328 | r.From = 0 |
| 329 | } else { |
| 330 | r.From = *sr.From |
| 331 | } |
| 332 | |
| 333 | if sr.Sort == nil { |
| 334 | r.Sort = search.SortOrder{&search.SortScore{Desc: true}} |
| 335 | } else { |
| 336 | r.Sort, err = search.ParseSortOrderJSON(sr.Sort) |
| 337 | if err != nil { |
| 338 | return nil, err |
| 339 | } |
| 340 | } |
| 341 | |
| 342 | return r, r.Validate() |
| 343 | } |
| 344 | |
| 345 | type BleveDest struct { |
| 346 | path string |
no outgoing calls