elasticsearch 使用 normalizer 过滤掉 html标签 请举例
时间: 2024-04-29 22:24:39 浏览: 17
当然可以,比如使用以下的自定 normalizer,它可以过滤掉字符串中的HTML标签:
```
PUT /test
{
"settings": {
"analysis": {
"normalizer": {
"my_normalizer": {
"type": "custom",
"char_filter": [],
"filter": [ "lowercase", "asciifolding", "html_strip" ]
}
}
}
},
"mappings": {
"properties": {
"title": {
"type": "keyword",
"normalizer": "my_normalizer"
}
}
}
}
```
相关问题
es聚合时过滤掉了空节点
好的,如果您在 Elasticsearch 聚合查询时想要过滤掉空节点,可以使用“exists”查询来实现。
具体来说,您可以在聚合查询语句中使用“exists”查询,这样就只会对存在该字段值的文档进行聚合操作。以下是一个示例聚合查询语句:
```
{
"aggs": {
"field_name": {
"filter": {
"exists": {
"field": "your_field_name"
}
},
"aggs": {
// 这里是您想要进行的聚合操作
}
}
}
}
```
其中,“field_name”是您想要聚合的字段名称,“your_field_name”是您想要过滤掉空节点的字段名称,您可以在“filter”聚合中使用“exists”查询来过滤掉空节点。
希望这个解答能够帮到您!
javaApi的elasticsearch查询,过滤掉source字段不等于3,4,5的
您可以使用bool查询和must_not过滤器来实现这个要求。具体的查询DSL如下:
```
{
"query": {
"bool": {
"must_not": [
{
"terms": {
"_source": [
"3",
"4",
"5"
]
}
}
]
}
}
}
```
在Java API中,您可以使用以下代码实现:
```java
SearchRequest searchRequest = new SearchRequest("your_index");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
TermsQueryBuilder termsQueryBuilder = QueryBuilders.termsQuery("_source", "3", "4", "5");
boolQueryBuilder.mustNot(termsQueryBuilder);
searchSourceBuilder.query(boolQueryBuilder);
searchRequest.source(searchSourceBuilder);
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
```
其中,client是您的Elasticsearch客户端对象。