Elasticsearch поиск по синонимам в формате synonym.txt - PullRequest
0 голосов
/ 30 мая 2019

Я пытался поместить синоним вручную в индекс, но я не получаю вывод. Есть ли какая-то причина, почему я не получаю желаемый вывод? Я также пытался указать путь к анализу / wn_s.pl. Затем я попыталсяЧтобы добавить синоним вручную, кажется, что что-то не так, либо с моим индексированием, либо с запросами. Вот мой индекс ниже, поиск по синониму применяется для поля "имя категории".поле.

{
    "settings": {
        "index": {
            "analysis": {
                "filter": {
                    "synonym": {
                        "type": "synonym",
                        "format": "wordnet",
                        "synonyms_path": "analysis/wn_s.pl"
                    }

                },
                "analyzer": {
                    "synonym": {
                        "tokenizer": "standard",
                        "filter": ["lowercase",
                            "synonym"
                        ]
                    },

                    "keyword_analyzer": {
                        "filter": [
                            "lowercase",
                            "asciifolding",
                            "trim"
                        ],
                        "char_filter": [],
                        "type": "custom",
                        "tokenizer": "keyword"
                    },
                    "edge_ngram_analyzer": {
                        "filter": [
                            "lowercase"
                        ],
                        "tokenizer": "edge_ngram_tokenizer"
                    },
                    "edge_ngram_search_analyzer": {
                        "tokenizer": "lowercase"
                    }
                },

                "tokenizer": {
                    "edge_ngram_tokenizer": {
                        "type": "edge_ngram",
                        "min_gram": 1,
                        "max_gram": 25,
                        "token_chars": [
                            "letter"
                        ]
                    }

                },
                "mappings": {
                    "properties": {
                        "firebaseId": {
                            "type": "text"
                        },
                        "name": {
                            "fielddata": true,
                            "type": "text",
                            "analyzer": "standard"
                        },
                        "name_auto": {
                            "type": "text",

                            "fields": {
                                "keywordstring": {
                                    "type": "text",
                                    "analyzer": "keyword_analyzer"
                                },
                                "edgengram": {
                                    "type": "text",
                                    "analyzer": "edge_ngram_analyzer",
                                    "search_analyzer": "edge_ngram_search_analyzer"
                                },
                                "completion": {
                                    "type": "completion"
                                }

                            }
                        },

                        "category_name": {
                            "type": "text",
                            "analyzer": "synonym"

                        },
                        "sku": {
                            "type": "text"
                        },
                        "price": {
                            "type": "text"
                        },
                        "magento_id": {
                            "type": "text"
                        },
                        "seller_id": {
                            "type": "text"
                        },
                        "square_item_id": {
                            "type": "text"
                        },
                        "square_variation_id": {
                            "type": "text"
                        },
                        "typeId": {
                            "type": "text"
                        }
                    }
                }
            }
        }
    }
}

Я запрашиваю запрос, используя следующий запрос:

{
    "query": {
        "bool": {
            "should": [{
                    "match_phrase": {
                        "name_auto.edgengram": "shoes"
                    }
                }, {
                    "match_phrase": {
                        "name_auto": "shoes"
                    }
                },

                {
                    "match": {
                        "name_auto": "shoes"
                    }
                },
                {
                    "match": {
                        "category_name": {
                            "query": "shoes",
                            "analyzer": "synonym"

                        }
                    }
                }, {
                    "match_phrase": {
                        "category_name": "shoes"
                    }
                }, {
                    "match": {
                        "name": {
                            "query": "shoes",
                            "fuzziness": 2,
                            "prefix_length": 1

                        }
                    }
                }
            ]
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...