1
0
Fork 0
mirror of https://github.com/documize/community.git synced 2025-08-08 15:05:28 +02:00

Install helps docs as part of onboarding process

Our own docs are installed as sample data!

Refactored search reindexing code.
This commit is contained in:
HarveyKandola 2019-06-24 17:01:56 +01:00
parent 411f64c359
commit 3621e2fb79
26 changed files with 1957 additions and 1280 deletions

View file

@ -13,6 +13,7 @@ package search
import (
"database/sql"
"fmt"
"github.com/documize/community/domain"
"github.com/documize/community/model/attachment"
@ -118,6 +119,53 @@ func (m *Indexer) DeleteContent(ctx domain.RequestContext, pageID string) {
m.runtime.Commit(ctx.Transaction)
}
// Rebuild recreates all search indexes.
func (m *Indexer) Rebuild(ctx domain.RequestContext) {
method := "search.rebuildSearchIndex"
docs, err := m.store.Meta.Documents(ctx)
if err != nil {
m.runtime.Log.Error(method, err)
return
}
m.runtime.Log.Info(fmt.Sprintf("Search re-index started for %d documents", len(docs)))
for i := range docs {
d := docs[i]
dc, err := m.store.Meta.Document(ctx, d)
if err != nil {
m.runtime.Log.Error(method, err)
// continue
}
at, err := m.store.Meta.Attachments(ctx, d)
if err != nil {
m.runtime.Log.Error(method, err)
// continue
}
m.IndexDocument(ctx, dc, at)
pages, err := m.store.Meta.Pages(ctx, d)
if err != nil {
m.runtime.Log.Error(method, err)
// continue
}
for j := range pages {
m.IndexContent(ctx, pages[j])
}
// Log process every N documents.
if i%100 == 0 {
m.runtime.Log.Info(fmt.Sprintf("Search re-indexed %d documents...", i))
}
}
m.runtime.Log.Info(fmt.Sprintf("Search re-index finished for %d documents", len(docs)))
}
// FilterCategoryProtected removes search results that cannot be seen by user
// due to document cateogory viewing permissions.
func FilterCategoryProtected(results []sm.QueryResult, cats []category.Category, members []category.Member) (filtered []sm.QueryResult) {