mirror of
https://github.com/hcengineering/platform.git
synced 2024-11-23 05:53:09 +03:00
fix fulltext mapping issue
Signed-off-by: Andrey Platov <andrey@hardcoreeng.com>
This commit is contained in:
parent
9ef7399bd6
commit
7b70a8c7b6
@ -80,7 +80,7 @@ export class FullTextIndex extends TxProcessor implements Storage {
|
||||
const attributes = this.getFullTextAttributes(tx.objectClass)
|
||||
if (attributes === undefined) return {}
|
||||
const doc = TxProcessor.createDoc2Doc(tx)
|
||||
const content = attributes.map(attr => (doc as any)[attr.name]) // buildContent(doc, attributes) // (doc as any)[attribute.name]
|
||||
const content = attributes.map(attr => ((doc as any)[attr.name] !== null && (doc as any)[attr.name] !== undefined) ? (doc as any)[attr.name].toString() : '') // temporary: getFullTextAttributes should provide string attrs only
|
||||
const indexedDoc: IndexedDoc = {
|
||||
id: doc._id,
|
||||
_class: doc._class,
|
||||
|
@ -29,33 +29,38 @@ class ElasticAdapter implements FullTextAdapter {
|
||||
async search (
|
||||
query: SearchQuery
|
||||
): Promise<IndexedDoc[]> {
|
||||
const result = await this.client.search({
|
||||
index: this.db,
|
||||
body: {
|
||||
query: {
|
||||
multi_match: {
|
||||
query: query.$search,
|
||||
fields: [
|
||||
'content0',
|
||||
'content1',
|
||||
'content2',
|
||||
'content3',
|
||||
'content4',
|
||||
'content5',
|
||||
'content6',
|
||||
'content7',
|
||||
'content8',
|
||||
'content9',
|
||||
'attachment.content'
|
||||
]
|
||||
try {
|
||||
const result = await this.client.search({
|
||||
index: this.db,
|
||||
body: {
|
||||
query: {
|
||||
multi_match: {
|
||||
query: query.$search,
|
||||
fields: [
|
||||
'content0',
|
||||
'content1',
|
||||
'content2',
|
||||
'content3',
|
||||
'content4',
|
||||
'content5',
|
||||
'content6',
|
||||
'content7',
|
||||
'content8',
|
||||
'content9',
|
||||
'attachment.content'
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
console.log(result)
|
||||
const hits = result.body.hits.hits as any[]
|
||||
console.log('hits', hits)
|
||||
return hits.map(hit => hit._source)
|
||||
})
|
||||
console.log(result)
|
||||
const hits = result.body.hits.hits as any[]
|
||||
console.log('hits', hits)
|
||||
return hits.map(hit => hit._source)
|
||||
} catch (err) {
|
||||
console.error(JSON.stringify(err, null, 2))
|
||||
return []
|
||||
}
|
||||
}
|
||||
|
||||
async index (doc: IndexedDoc): Promise<TxResult> {
|
||||
|
Loading…
Reference in New Issue
Block a user