我正在尝试搜索@gatsby-contrib/elasticlunr
生成的索引,生成的索引如下所示:
{
"version": "0.9.5",
"fields": ["title", "path", "section"],
"ref": "id",
"documentStore": {
"docs": {
"fe565569-77a5-566d-bb47-96a6094c22c5": {
"id": "fe565569-77a5-566d-bb47-96a6094c22c5",
"title": "schema",
"path": "/graphql/schema",
"section": "graphql"
},
"cd1cdd40-4bb7-5ff6-9908-6c9ad692e75c": {
"id": "cd1cdd40-4bb7-5ff6-9908-6c9ad692e75c",
"title": "Component",
"path": "/react/component",
"section": "react"
},
"c1aecadb-3d1e-5d49-87f3-2b6f2c73433c": {
"id": "c1aecadb-3d1e-5d49-87f3-2b6f2c73433c",
"title": "Component",
"path": "/react/component2",
"section": "react"
},
"07159f12-dafb-53f6-b1ad-5032d56d25bb": {
"id": "07159f12-dafb-53f6-b1ad-5032d56d25bb",
"title": "Lazy",
"path": "/react/suspense",
"section": "react"
},
"380309db-ffa1-5f24-a192-36ac36b90a06": {
"id": "380309db-ffa1-5f24-a192-36ac36b90a06",
"title": "suspense",
"path": "/react/lazy",
"section": "react"
},
"380309db-ffa1-5f24-a192-36ac36b90uuuu": {
"id": "380309db-ffa1-5f24-a192-36ac36b9uuuu",
"title": "super",
"path": "/graphql/super",
"section": "graphql"
}
}
}
.....
}
有没有一种方法我只能获得仅section
== react
的结果,而不是所有与字段匹配搜索查询的文档。
例如
当我在配置中使用带有su
的术语expand: true
搜索并设置过滤器section = 'graphql'
时,它应返回:
"380309db-ffa1-5f24-a192-36ac36b90uuuu": {
"id": "380309db-ffa1-5f24-a192-36ac36b9uuuu",
"title": "super",
"path": "/graphql/super",
"section": "graphql"
}
但是我现在得到的是:
{
"380309db-ffa1-5f24-a192-36ac36b90a06": {
"id": "380309db-ffa1-5f24-a192-36ac36b90a06",
"title": "suspense",
"path": "/react/lazy",
"section": "react"
},
"380309db-ffa1-5f24-a192-36ac36b90uuuu": {
"id": "380309db-ffa1-5f24-a192-36ac36b9uuuu",
"title": "super",
"path": "/graphql/super",
"section": "graphql"
}
}
谢谢!
答案 0 :(得分:0)
您无法使用elasticlunr.js进行此类过滤。这是一个轻量级的全文本搜索引擎。
elasticlunr也不支持正则表达式
或者,您可以再次使用循环来过滤结果。
document.select("a img"); //selects all images inside a link
document.select(":not(a) img"); //images not inside a link (does not work)
谢谢