弹性搜索分析器 - Stemmer不工作

时间:2015-07-07 08:10:07

标签: elasticsearch stemming

我的一个索引的设置如下,但是没有应用词干分析器。例如,搜索狐狸不会选择包含术语狐狸的文章。我不明白为什么因为过滤器的顺序是正确的(小写字母在限制器之前)。

{
"articles": {
    "settings": {
        "index": {
            "creation_date": "1436255268907",
            "analysis": {
                "filter": {
                    "filter_stemmer": {
                        "type": "stemmer",
                        "language": "english"
                    },
                    "kill_filters": {
                        "pattern": ".*_.*",
                        "type": "pattern_replace",
                        "replacement": ""
                    },
                    "filter_stop": {
                        "type": "stop"
                    },
                    "filter_shingle": {
                        "min_shingle_size": "2",
                        "max_shingle_size": "5",
                        "type": "shingle",
                        "output_unigrams": "true"
                    },
                    "filter_stemmerposs": {
                        "type": "stemmer",
                        "language": "possessive_english"
                    }
                },
                "analyzer": {
                    "tags_analyzer": {
                        "type": "custom",
                        "filter": [
                            "standard",
                            "lowercase",
                            "filter_stemmerposs",
                            "filter_stemmer"
                        ],
                        "tokenizer": "patterntoke"
                    },
                    "shingles_analyzer": {
                        "filter": [
                            "standard",
                            "lowercase",
                            "filter_stop",
                            "filter_shingle",
                            "kill_filters",
                            "filter_stemmerposs",
                            "filter_stemmer"
                        ],
                        "char_filter": [
                            "html_strip"
                        ],
                        "type": "custom",
                        "tokenizer": "standard"
                    }
                },
                "tokenizer": {
                    "patterntoke": {
                        "type": "pattern",
                        "pattern": ","
                    }
                }
            },
            "number_of_shards": "5",
            "number_of_replicas": "1",
            "version": {
                "created": "1060099"
            },
            "uuid": "H2NsE3eKT1y_ArPOPbjT6w"
        }
    }
}
}

以下是映射:

 {
"articles": {
    "mappings": {
        "article": {
            "properties": {
                "accountid": {
                    "type": "double",
                    "include_in_all": false
                },
                "article": {
                    "type": "string",
                    "index_analyzer": "shingles_analyzer"
                },
                "articleid": {
                    "type": "double",
                    "include_in_all": false
                },
                "categoryid": {
                    "type": "double",
                    "include_in_all": false
                },
                "draftflag": {
                    "type": "double",
                    "include_in_all": false
                },
                "files": {
                    "type": "string",
                    "index_analyzer": "tags_analyzer"
                },
                "tags": {
                    "type": "string",
                    "index_analyzer": "tags_analyzer"
                },
                "title": {
                    "type": "string",
                    "index_analyzer": "shingles_analyzer"
                },
                "topicid": {
                    "type": "double",
                    "include_in_all": false
                }
            }
        }
    }
}
}

示例文档是多种多样的,但是例如1包含令牌狐狸和另一只狐狸(都来自文章字段),但每个文档只有在搜索是狐狸或狐狸时才会找到,而不是我期望的那个。使用的搜索是一个fuzzylikethis搜索(我使用Nest .net来执行查询)

0 个答案:

没有答案