fix fulltext mapping issue

Signed-off-by: Andrey Platov <andrey@hardcoreeng.com>
This commit is contained in:
Andrey Platov 2021-10-26 18:43:51 +02:00
parent 9ef7399bd6
commit 7b70a8c7b6
No known key found for this signature in database
GPG Key ID: C8787EFEB4B64AF0
2 changed files with 31 additions and 26 deletions

View File

@ -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,

View File

@ -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> {