mirror of
https://github.com/go-gitea/gitea
synced 2024-11-05 09:44:26 +00:00
5dbf36f356
* Issue search support elasticsearch * Fix lint * Add indexer name on app.ini * add a warnning on SearchIssuesByKeyword * improve code
56 lines
1.2 KiB
Markdown
Vendored
56 lines
1.2 KiB
Markdown
Vendored
# Changes from 6.0 to 7.0
|
|
|
|
See [breaking changes](https://www.elastic.co/guide/en/elasticsearch/reference/7.x/breaking-changes-7.0.html).
|
|
|
|
## SearchHit.Source changed from `*json.RawMessage` to `json.RawMessage`
|
|
|
|
The `SearchHit` structure changed from
|
|
|
|
```
|
|
// SearchHit is a single hit.
|
|
type SearchHit struct {
|
|
...
|
|
Source *json.RawMessage `json:"_source,omitempty"` // stored document source
|
|
...
|
|
}
|
|
```
|
|
|
|
to
|
|
|
|
```
|
|
// SearchHit is a single hit.
|
|
type SearchHit struct {
|
|
...
|
|
Source json.RawMessage `json:"_source,omitempty"` // stored document source
|
|
...
|
|
}
|
|
```
|
|
|
|
As `json.RawMessage` is a `[]byte`, there is no need to specify it
|
|
as `*json.RawMessage` as `json.RawMessage` is perfectly ok to represent
|
|
a `nil` value.
|
|
|
|
So when deserializing the search hits, you need to change your code from:
|
|
|
|
```
|
|
for _, hit := range searchResult.Hits.Hits {
|
|
var doc Doc
|
|
err := json.Unmarshal(*hit.Source, &doc) // notice the * here
|
|
if err != nil {
|
|
// Deserialization failed
|
|
}
|
|
}
|
|
```
|
|
|
|
to
|
|
|
|
```
|
|
for _, hit := range searchResult.Hits.Hits {
|
|
var doc Doc
|
|
err := json.Unmarshal(hit.Source, &doc) // it's missing here
|
|
if err != nil {
|
|
// Deserialization failed
|
|
}
|
|
}
|
|
```
|