您可以根据字符串值过滤搜索结果。这对于根据作者、标签或任何其他字符串值进行过滤很有用。
设置字符串字段
要根据字符串进行过滤,您必须首先将关键字添加到索引中。
将以下文档索引到 Elasticsearch 将创建一个可用于过滤的author
字段。
{
"author": "John Doe" # could be ["John Doe", "Jane Doe"] for multiple authors
}
您的映射将如下所示
{
"properties": {
"author": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
}
}
}
}
}
过滤器属性配置
在您的索引配置中添加一个过滤器属性。过滤器属性将用于根据日期过滤搜索结果。
{
"filter_attributes": [
{ attribute: 'author', field: 'author.keyword', type: 'string' },
]
}
或者,您也可以在facet_attributes
下添加属性以使其可用于分面。
{
"facet_attributes": [
{ attribute: 'author', field: 'author.keyword', type: 'string' }
]
}
属性名称在filter_attributes
和facet_attributes
中都必须是唯一的。如果要将同一属性用于过滤和分面,则只需将其添加到facet_attributes
中。
使用过滤器属性
您可以在搜索查询中使用过滤器属性,以在configure
中根据日期过滤搜索结果。
语法示例
过滤器必须遵循Elasticsearch 查询字符串 (在新标签页中打开) 格式。
"author:John" # author is John
"author:John OR author:Jane" # author is John or Jane
"author:John AND author:Jane" # author is John and Jane
示例
Instantsearch.js - 配置