首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用FlexSearch查找属于集合一部分的结果

使用FlexSearch查找属于集合一部分的结果
EN

Stack Overflow用户
提问于 2021-03-31 02:20:29
回答 2查看 282关注 0票数 0

我有一个使用FlexSearch的应用程序。在这个应用程序中,我有一个项目数组,看起来像这样:

代码语言:javascript
复制
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-stockout-of-stockdiscontinued)复选框。我的问题是,我如何找到a)库存或b)脱销的结果。我没有看到一种使用where function执行逻辑或的方法。例如,我希望能够说,给我所有库存或脱销的结果。从逻辑的角度来看,人们可以说,给我所有不停产的东西。然而,这并不是我的整个数据集。出于这个原因,我正在尝试找出如何在Flexsearch中执行OR。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-04 19:29:28

请参阅自述文件中的Logical Operators一节。这似乎起作用了:

代码语言:javascript
复制
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' }时,它并不起作用。

票数 0
EN

Stack Overflow用户

发布于 2021-04-04 18:12:58

使用自定义函数不能解决您的问题吗?(在文档中找到)类似于:

代码语言:javascript
复制
resultIndex.where(function(item){
    return item.status === "in-stock" || item.status === "out-of-stock";
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66876436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档