1
0
mirror of https://github.com/nextapps-de/flexsearch.git synced 2025-10-02 16:16:42 +02:00

v0.5.0 Where / Find / Tags / Custom Sort

This commit is contained in:
Thomas Wilkerling
2019-02-08 19:56:19 +01:00
parent 4ec53b7de0
commit 1bfab0e2be
12 changed files with 818 additions and 225 deletions

View File

@@ -13,41 +13,41 @@ module.exports = function(FlexSearch, env){
var data = [{
id: 2,
data:{
id: 0,
title: "Title 1",
body: "Body 1"
title: "Title 3",
body: "Body 3"
}
},{
id: 1,
data:{
id: 1,
title: "Title 2",
body: "Body 2"
}
},{
id: 0,
data:{
id: 2,
title: "Title 3",
body: "Body 3"
title: "Title 1",
body: "Body 1"
}
}];
var update = [{
id: 0,
data:{
id: 0,
title: "Foo 1",
body: "Bar 1"
}
},{
id: 1,
data:{
id: 1,
title: "Foo 2",
body: "Bar 2"
}
},{
id: 2,
data:{
id: 2,
title: "Foo 3",
body: "Bar 3"
}
@@ -59,7 +59,7 @@ module.exports = function(FlexSearch, env){
doc: {
id: "data:id",
id: "id",
field: [
"data:title",
"data:body"
@@ -200,7 +200,7 @@ module.exports = function(FlexSearch, env){
async: true,
doc: {
id: "data:id",
id: "id",
field: [
"data:title",
"data:body"
@@ -246,7 +246,7 @@ module.exports = function(FlexSearch, env){
async: true,
doc: {
id: "data:id",
id: "id",
field: [
"data:title",
"data:body"
@@ -283,6 +283,69 @@ module.exports = function(FlexSearch, env){
expect(await index.doc.index[0].length).to.equal(0);
expect(await index.doc.index[1].length).to.equal(0);
});
it("Should have been sorted properly", function(){
var index = new FlexSearch({
doc: {
id: "id",
field: [
"data:title"
]
}
});
index.add(data);
var results = index.search({
field: "data:title",
query: "title"
});
expect(results[0]).to.equal(data[0]);
expect(results[1]).to.equal(data[1]);
expect(results[2]).to.equal(data[2]);
results = index.search({
query: "title",
field: "data:title",
sort: function(a, b){
const diff = a.id - b.id;
return (diff < 0 ? -1 : (diff ? 1 : 0));
}
});
expect(results[0]).to.equal(data[2]);
expect(results[1]).to.equal(data[1]);
expect(results[2]).to.equal(data[0]);
results = index.search({
query: "title",
field: "data:title",
sort: "id"
});
expect(results[0]).to.equal(data[2]);
expect(results[1]).to.equal(data[1]);
expect(results[2]).to.equal(data[0]);
results = index.search({
query: "title",
field: "data:title",
sort: "data:title"
});
expect(results[0]).to.equal(data[2]);
expect(results[1]).to.equal(data[1]);
expect(results[2]).to.equal(data[0]);
});
});
// ------------------------------------------------------------------------