| 198 | } |
| 199 | |
| 200 | func (s *Store) buildQuery(query string, after ...string) io.Reader { |
| 201 | var b strings.Builder |
| 202 | |
| 203 | b.WriteString("{\n") |
| 204 | |
| 205 | if query == "" { |
| 206 | b.WriteString(searchAll) |
| 207 | } else { |
| 208 | b.WriteString(fmt.Sprintf(searchMatch, query)) |
| 209 | } |
| 210 | |
| 211 | if len(after) > 0 && after[0] != "" && after[0] != "null" { |
| 212 | b.WriteString(",\n") |
| 213 | b.WriteString(fmt.Sprintf(` "search_after": %s`, after)) |
| 214 | } |
| 215 | |
| 216 | b.WriteString("\n}") |
| 217 | |
| 218 | // fmt.Printf("%s\n", b.String()) |
| 219 | return strings.NewReader(b.String()) |
| 220 | } |
| 221 | |
| 222 | const searchAll = ` |
| 223 | "query" : { "match_all" : {} }, |