1
0
mirror of https://github.com/nextapps-de/flexsearch.git synced 2025-08-25 15:01:19 +02:00

re-implement append

This commit is contained in:
Thomas Wilkerling
2025-06-05 08:33:21 +02:00
parent 1f75f5f9d9
commit 1c4bcaac2e
11 changed files with 406 additions and 272 deletions

View File

@@ -14,13 +14,13 @@ if(!build_light) describe("Document (Multi-Field Search)", function(){
const data = [{
id: 2,
data: { title: "Title 3", body: "Body 3" }
data: { title: "Title 3", body: "Body 3", cat: "A" }
},{
id: 1,
data: { title: "Title 2", body: "Body 2" }
data: { title: "Title 2", body: "Body 2", cat: "B" }
},{
id: 0,
data: { title: "Title 1", body: "Body 1" }
data: { title: "Title 1", body: "Body 1", cat: "A" }
}];
const update = [{
@@ -404,6 +404,89 @@ if(!build_light) describe("Document (Multi-Field Search)", function(){
})).to.eql([]);
});
it("Merge Results", function(){
const document = new Document({
document: {
store: [
"data:title"
],
id: "id",
field: [
"data:title",
"data:body"
],
tag: "data:cat"
}
});
for(let i = 0; i < data.length; i++){
document.add(data[i]);
}
expect(document.search({
query: "title",
enrich: false,
suggest: true,
merge: true
})).to.eql([
{ id: 2, field: [ 'data:title' ] },
{ id: 1, field: [ 'data:title' ] },
{ id: 0, field: [ 'data:title' ] }
]);
expect(document.search({
query: "title",
enrich: true,
suggest: true,
merge: true
}).map(res => res.doc)).to.eql([
{ data: { title: data[0].data.title }},
{ data: { title: data[1].data.title }},
{ data: { title: data[2].data.title }}
]);
expect(document.search({
query: "title",
tag: { "data:cat": "A" },
enrich: true,
suggest: true,
merge: true
}).map(res => res.doc)).to.eql([
{ data: { title: data[0].data.title }},
{ data: { title: data[2].data.title }}
]);
});
it("Using BigInt", function(){
const document = new Document({
document: {
store: "data:title",
id: "id",
field: [
"data:title",
"data:body"
],
tag: "data:cat"
}
});
for(let i = 0, tmp; i < data.length; i++){
tmp = Object.assign({}, data[i], { id: BigInt(i + 1) });
document.add(tmp);
}
expect(document.search({
query: "title",
tag: { "data:cat": "A" },
merge: true
})).to.eql([
{ id: BigInt(1), field: [ "data:title" ] },
{ id: BigInt(3), field: [ "data:title" ] }
]);
});
it("Custom Document Store", function(){
const document = new Document({