我将自己的wordpress帖子转发给Elasticsearch,但在搜索建议条款时,我仍然会获得停用词和HTML元素。例如,the
,a
或甚至p
标记。我在索引中指定已经使用这些过滤器。
这是我的代码。
es.indices.create(
index='wp-posts',
body={
'settings': {
# just one shard, no replicas for testing
'number_of_shards': 1,
'number_of_replicas': 0,
# custom analyzer for analyzing file paths
'analysis': {
'analyzer': {
"my_analyzer": {
"type": "standard",
"stopwords": "_english_"
},
'wordpress_content': {
'type': 'custom',
'tokenizer': 'standard',
'filter': ['html_strip']
}
}
}
}
},
# Will ignore 400 errors, remove to ensure you're prompted
ignore=400
)
这就是我搜索建议的方式。除非我做错了。
result = es.suggest(index="wp-posts", body={"my_suggestion": {"text": post['content'], "term": {"field":"content" }}})