使用雪球分析仪,我得到了“房子”的结果。当我查询'住房'。我想要分析器进行大多数搜索,但在这种情况下,返回是无关紧要的。我如何限制分析仪为这些情况考虑的工作?
答案 0 :(得分:1)
您可以通过keyword_marker和stem_exclusion过滤器执行此操作:
防止词干
语言分析器的stem_exclusion参数(请参阅配置 语言分析器)允许我们指定应该的单词列表 不被阻止。在内部,这些语言分析器使用 keyword_marker令牌过滤器将列出的单词标记为关键字, 这可以防止后续的词干标记过滤器触及它们 词语的
http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/controlling-stemming.html
在文件中指定关键字
虽然语言分析器只允许我们指定一个数组 stem_exclusion参数中的单词,keyword_marker标记过滤器 还接受一个keywords_path参数,允许我们存储所有 我们在文件中的关键字。该文件每行应包含一个单词,和 必须存在于群集中的每个节点上。请参阅更新停用词 有关如何更新此文件的提示。
此示例(来自文档)显示了如何实现此目的:
PUT /my_index
{
"settings": {
"analysis": {
"filter": {
"no_stem": {
"type": "keyword_marker",
"keywords": [ "skies" ]
}
},
"analyzer": {
"my_english": {
"tokenizer": "standard",
"filter": [
"lowercase",
"no_stem",
"porter_stem"
]
}
}
}
}
}
根据您现有的分析仪设置,具体情况会有所不同,但这应该可以帮助您。