我正在嘗試在我的 go 應(yīng)用程序中實(shí)現(xiàn) elasticsearch。我正在使用https://github.com/olivere/elastic庫(kù)進(jìn)行 go,elasticsearch 在 docker 容器中運(yùn)行。我成功連接到elasticsearch并創(chuàng)建索引,之后我嘗試將數(shù)據(jù)保存到elasticsearch,也成功了。當(dāng)我運(yùn)行查詢時(shí)我開(kāi)始遇到問(wèn)題我的映射看起來(lái)像這樣 "mappings":{ "item":{ "properties":{ "id":{ "type":"integer" }, "title":{ "type":"text" }, "description":{ "type":"text" }, "userid":{ "type":"integer" } } } }我試圖按這樣的標(biāo)題查詢 es ,但得到空響應(yīng)。如果我從 Search() 中刪除查詢,則會(huì)列出所有已保存的項(xiàng)目。我還嘗試與 newBoolQuery 和 newMatchPhrase 結(jié)合使用,它也返回空響應(yīng)。query := elastic.NewTermQuery("title", "Hello there")searchResult, err := elasticClient.Search(). Index("items"). Query(query). Pretty(true). Do(ctx)if err != nil { return nil, err}return searchResult, nil回復(fù) : { "id": 81, "message": "Search successfull", "data": { "took": 1, "_scroll_id": "", "hits": { "total": 0, "max_score": null, "hits": [] }, "suggest": null, "aggregations": null, "timed_out": false, "_shards": { "total": 1, "successful": 1, "failed": 0 } }}
1 回答

交互式愛(ài)情
TA貢獻(xiàn)1712條經(jīng)驗(yàn) 獲得超3個(gè)贊
我認(rèn)為你應(yīng)該根據(jù)你的情況進(jìn)行選擇,如術(shù)語(yǔ)查詢NewMatchQuery
文檔中所述
避免對(duì)文本字段使用術(shù)語(yǔ)“查詢”。
默認(rèn)情況下,Elasticsearch 會(huì)更改文本字段的值作為分析的一部分。這可能會(huì)使查找文本字段值的精確匹配變得困難。
要搜索文本字段值,請(qǐng)改用匹配查詢。
您沒(méi)有分享您索引的示例文檔以及您想要查找的內(nèi)容,但類(lèi)似下面的內(nèi)容應(yīng)該對(duì)您的情況有所幫助
query?:=?NewMatchQuery("title",?"Hello?there")
希望有幫助。
- 1 回答
- 0 關(guān)注
- 310 瀏覽
添加回答
舉報(bào)
0/150
提交
取消