本文整理汇总了Golang中github.com/anchepiece/suggest.Suggest.Autocorrect方法的典型用法代码示例。如果您正苦于以下问题:Golang Suggest.Autocorrect方法的具体用法?Golang Suggest.Autocorrect怎么用?Golang Suggest.Autocorrect使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/anchepiece/suggest.Suggest
的用法示例。
在下文中一共展示了Suggest.Autocorrect方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: simpleExample
func simpleExample() {
suggester := suggest.Suggest{}
query := "fgerp"
commands := []string{"cat", "mkdir", "fgrep", "history"}
match, err := suggester.AutocorrectAgainst(query, commands)
if err == nil {
fmt.Println("Autocorrected to:", match) // "fgrep"
}
suggester.Commands = commands
if match, err := suggester.Autocorrect(query); err == nil {
fmt.Println("Also Autocorrected to:", match) // "fgrep"
}
query = "println"
commands = []string{"Fprint", "Fprintf", "Fprintln", "Sprintf", "Print", "Printf", "Println"}
suggester.Options.SimilarityMinimum = 8
fmt.Printf("Searching %v for %s\n", query, commands)
if result, err := suggester.QueryAgainst(query, commands); err == nil {
if !result.Success() {
fmt.Println("No close matches")
} else {
fmt.Println("Similar matches:", result.Matches) // [Println Fprintln]
fmt.Println("Autocorrect:", result.Autocorrect) // Println
}
}
os.Exit(0)
}
示例2: ServeHTTP
func (mh *matchHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
w.Header().Set("content-type", "application/json")
if r.Method != http.MethodGet {
w.WriteHeader(http.StatusNotFound)
return
}
mr := &matchResponse{}
query := r.URL.Query().Get("q")
if query == "" {
mr.Error = "Must supply query parameter 'q' in URL."
response, err := json.Marshal(mr)
if err != nil {
w.WriteHeader(http.StatusInternalServerError)
return
}
w.WriteHeader(http.StatusBadRequest)
w.Write(response)
return
}
suggester := suggest.Suggest{}
suggester.Commands = matches
match, err := suggester.Autocorrect(query)
if err != nil {
mr.Error = err.Error()
response, err := json.Marshal(mr)
if err != nil {
w.WriteHeader(http.StatusInternalServerError)
return
}
w.WriteHeader(http.StatusInternalServerError)
w.Write(response)
return
}
if match == "" {
mr.Error = "No match was found"
response, err := json.Marshal(mr)
if err != nil {
w.WriteHeader(http.StatusInternalServerError)
return
}
w.WriteHeader(http.StatusNotFound)
w.Write(response)
return
}
mr.Changed = match != query
mr.Match = match
response, err := json.Marshal(mr)
if err != nil {
w.WriteHeader(http.StatusInternalServerError)
return
}
w.WriteHeader(http.StatusOK)
w.Write(response)
return
}
示例3: TestAutocorrect
func TestAutocorrect(t *testing.T) {
s := suggest.Suggest{}
if s.Options.AutocorrectDisabled != false {
t.Errorf("AutocorrectDisabled should be initialized to false")
}
for _, tt := range autocorrectTests {
query := tt.query
s.Commands = tt.commands
actual, err := s.Autocorrect(query)
if err != nil {
t.Errorf("Autocorrect(%v) returned error %v", tt.query, err)
continue
}
if actual != tt.expected {
t.Errorf("Autocorrect(%q, %v) = %q, want %q", tt.query, tt.commands, actual, tt.expected)
}
}
}
示例4: simpleExample2
func simpleExample2() {
suggester := suggest.Suggest{}
query := "fgerp"
commands := []string{"cat", "mkdir", "fgrep", "history"}
suggester.Commands = commands
if match, err := suggester.Autocorrect("mkdri"); err == nil {
fmt.Println("Autocorrected to:", match) // "mkdir"
}
// Alternate autocorrect usage pattern
match, _ := suggester.AutocorrectAgainst(query, commands)
if match != "" {
fmt.Println("Autocorrected to:", match) // "fgrep"
}
// Alternate usage pattern
query = "printf"
commands = []string{"Fprint", "Fprintf", "Fprintln", "Sprintf", "Printf", "Println"}
suggester.Options.SimilarityMinimum = 8
fmt.Printf("Searching %v in %s\n", query, commands)
if result, err := suggester.QueryAgainst(query, commands); err == nil {
if !result.Success() {
fmt.Println("No close matches")
} else {
fmt.Println("Similar matches:", result.Matches)
// [Println Fprintln]
fmt.Println("Autocorrect:", result.Autocorrect)
// Println
}
}
}