使用 FlexSearch 查找属于集合的结果
Finding results that are part of a set with FlexSearch
我有一个使用 FlexSearch 的应用程序。在此应用程序中,我有一组如下所示的项目:
let results = [
{ id:'a', name:'The title', status:'in-stock' },
{ id:'b', name:'Another title', status:'out-of-stock' },
{ id:'c', name:'Some other', status:'discontinued' },
];
const resultSchema = {
id: 'id',
field: [
'name',
'status'
]
};
const resultIndex = new FlexSearch({
profile:'score',
doc: resultSchema
});
resultIndex.add(results);
我的页面有状态复选框(in-stock
、out-of-stock
和 discontinued
)。我的问题是,如何找到 a) 有货或 b) 缺货的结果。我没有看到用 where
function 执行逻辑 OR 的方法。例如,我希望能够说,给我所有有货或缺货的结果。从逻辑的角度来看,可以说,给我所有未停产的东西。但是,这不是我的整个数据集。出于这个原因,我正在尝试弄清楚如何在 Flexsearch 中执行 OR。
谢谢!
使用自定义函数不能解决您的问题吗?(在文档中找到)
像这样:
resultIndex.where(function(item){
return item.status === "in-stock" || item.status === "out-of-stock";
});
请参阅自述文件中的 Logical Operators 部分。这似乎有效:
const res = resultIndex.search([
{ field: 'status', query: 'in-stock', bool: 'or' },
{ field: 'status', query: 'out-of-stock', bool: 'or' },
]);
奇怪的是,{ field: 'status', query: 'discontinued', bool: 'not' }
我试了之后没用。
我有一个使用 FlexSearch 的应用程序。在此应用程序中,我有一组如下所示的项目:
let results = [
{ id:'a', name:'The title', status:'in-stock' },
{ id:'b', name:'Another title', status:'out-of-stock' },
{ id:'c', name:'Some other', status:'discontinued' },
];
const resultSchema = {
id: 'id',
field: [
'name',
'status'
]
};
const resultIndex = new FlexSearch({
profile:'score',
doc: resultSchema
});
resultIndex.add(results);
我的页面有状态复选框(in-stock
、out-of-stock
和 discontinued
)。我的问题是,如何找到 a) 有货或 b) 缺货的结果。我没有看到用 where
function 执行逻辑 OR 的方法。例如,我希望能够说,给我所有有货或缺货的结果。从逻辑的角度来看,可以说,给我所有未停产的东西。但是,这不是我的整个数据集。出于这个原因,我正在尝试弄清楚如何在 Flexsearch 中执行 OR。
谢谢!
使用自定义函数不能解决您的问题吗?(在文档中找到) 像这样:
resultIndex.where(function(item){
return item.status === "in-stock" || item.status === "out-of-stock";
});
请参阅自述文件中的 Logical Operators 部分。这似乎有效:
const res = resultIndex.search([
{ field: 'status', query: 'in-stock', bool: 'or' },
{ field: 'status', query: 'out-of-stock', bool: 'or' },
]);
奇怪的是,{ field: 'status', query: 'discontinued', bool: 'not' }
我试了之后没用。