Browse Source

Improve search and alias tools

master
Christopher Ramey 9 months ago
parent
commit
96140cd74b
  1. 4
      alias.go
  2. 15
      search.go

4
alias.go

@ -17,9 +17,7 @@ func handleAliasCommand() {
subcmd := strings.ToLower(os.Args[2])
switch subcmd {
case "ls":
fallthrough
case "list":
case "list", "ls", "l":
cmd := flag.NewFlagSet("alias list", flag.ExitOnError)
cmd.SetOutput(os.Stdout)
cfgpath := cmd.String("config", "", "path to configuration")

15
search.go

@ -2,7 +2,6 @@ package main
import (
"context"
"encoding/json"
"flag"
"fmt"
"os"
@ -19,7 +18,6 @@ func handleSearchCommand() {
}
cfgpath := cmd.String("config", "", "path to configuration")
server := cmd.String("server", "", "server name to use")
fields := cmd.String("fields", "*", "fields to include in search")
size := cmd.Int("size", 10, "maximum number of results returned")
from := cmd.Int("from", 0, "count to start search results from")
defop := cmd.String("defop", "AND", "default search operator")
@ -43,22 +41,21 @@ func handleSearchCommand() {
res, err := es.Search().
Index(cmd.Arg(0)).
StoredField(*fields).
Size(*size).
From(*from).
NoStoredFields().
FetchSourceContext(
elastic.NewFetchSourceContext(true).Include("*"),
).
Query(elastic.NewQueryStringQuery(cmd.Arg(1)).DefaultOperator(*defop)).
Do(context.Background())
if err != nil {
fmt.Fprintf(os.Stderr, "elastic error: %s\n", err.Error())
os.Exit(1)
}
for _, r := range res.Hits.Hits {
b, err := json.Marshal(r.Fields)
if err != nil {
fmt.Fprintf(os.Stderr, "marshal error: %s\n", err.Error())
os.Exit(1)
}
fmt.Fprintf(os.Stdout, "%s: %s\n", r.Id, string(b))
fmt.Fprintf(os.Stdout, "%s: %s\n", r.Id, string(r.Source))
}
fmt.Fprintf(os.Stdout, "Total: %d\n", res.Hits.TotalHits.Value)
}
Loading…
Cancel
Save