我在索引中配置了巴西葡萄牙语的停用词,但如果我搜索“ios”(这是一个ios课程),则会返回一堆其他文档,因为“nos”(巴西停用词)似乎被识别为模糊查询的有效术语。
但是如果我只搜索“nos”,什么都不会返回。我不希望模糊查询返回ios course?我很困惑。
这里的主要目的是,当用户搜索ios时,带有“nos”这样的停用词的文档不会被返回,而我可以为用户进行的其他更复杂的搜索保留模糊性。
查询示例:
GET /index/_search
{
"explain": true,
"query": {
"bool" : {
"must" : [
{
"terms" : {
"document_type" : [
"COURSE"
],
"boost" : 1.0
}
},
{
"multi_match" : {
"query" : "ios",
"type" : "best_fields",
"operator" : "OR",
"slop" : 0,
"fuzziness" : "AUTO",
"prefix_length" : 0,
"max_expansions" : 50,
"zero_terms_query" : "NONE",
"auto_generate_synonyms_phrase_query" : true,
"fuzzy_transpositions" : true,
"boost" : 1.0
}
}
],
"adjust_pure_negative" : true,
"boost" : 1.0
}
}
}
部分解释查询:
"description": "weight(corpo:nos in 52) [PerFieldSimilarity], result of:",
带有停止字配置的图像
谢谢
我试图添加前缀长度,但我希望忽略该停用字词。
1条答案
按热度按时间3qpi33ja1#
我认为,正确的工作方式停用词的语言是如下:
删除了外观术语“nos”。