Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Search 产品的弹性搜索映射_Search_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Search Engine - Fatal编程技术网 elasticsearch,search-engine,Search,elasticsearch,Search Engine" /> elasticsearch,search-engine,Search,elasticsearch,Search Engine" />

Search 产品的弹性搜索映射

Search 产品的弹性搜索映射,search,elasticsearch,search-engine,Search,elasticsearch,Search Engine,我想为我的在线购物网站实现一个搜索引擎我测试了一些分析器,但没有发现它们之间的显著差异。我使用了snowball、ngram和标准分析器 我不知道产品名称适合哪个analyzer,也不知道应该使用哪个搜索查询 这是我的映射模式 { "settings": { "analysis": { "analyzer": { "autocomplete": { "type": "custo

我想为我的在线购物网站实现一个搜索引擎
我测试了一些分析器,但没有发现它们之间的显著差异。我使用了snowball、ngram和标准分析器
我不知道产品名称适合哪个analyzer,也不知道应该使用哪个搜索查询
这是我的映射模式

{
    "settings": {
        "analysis": {
            "analyzer": {
                "autocomplete": {
                    "type": "custom",
                    "tokenizer": "standard",
                    "filter": ["standard", "lowercase", "stop", "kstem", "ngram"]
                }
            }
        }
    }
    ,
    "mappings": {
        "products": {
            "properties": {
                "id": {
                    "type": "integer",
                    "index": "no"
                },
                "name": {
                    "type": "multi_field",
                    "fields": {
                        "name": {
                            "type": "string"
                        },
                        "snowball": {
                            "type": "string",
                            "analyzer": "snowball"
                        },
                        "autocomplete": {
                            "analyzer": "autocomplete",
                            "type": "string"
                        }
                    }
                }
            }
        }
}
和搜索查询,我不知道使用匹配查询是否适合我的用例

{
        "query": {
            "multi_match": {
                "fuzziness":2,
                "type" : "phrase",
                "query": "term",
                "fields": ["name", "name.snowball",
                    "name.autocomplete"]
                }
        }
}
使用查看在Lucene索引中为您使用的不同分析器生成了哪些标记。查询“term”不是一个很好的测试示例,请使用更长的东西

您的搜索要求是什么

不要使用多重匹配查询来测试结果,而是在单个搜索中测试分析器

curl -XGET 'http://localhost:9200/yourindex/_search?q=name:yourSearchTerm'

curl -XGET 'http://localhost:9200/yourindex/_search?q=name.snowball:yourSearchTerm'

curl -XGET 'http://localhost:9200/yourindex/_search?q=name.autocomplete:yourSearchTerm'
对于自动完成,请查看


此外,Snowball词干分析器非常具有攻击性,可能会产生不希望的结果,您可能希望使用较轻的词干分析器。

我没有任何特殊要求,只是一个搜索引擎,用于索引所有产品名称,那么,您认为哪种分析器更好?您说我不使用匹配查询?那么您建议哪种查询适合我?要测试我说的查询,请不要使用多匹配查询,因为您希望看到搜索之间的任何差异。如果您没有任何特殊要求,只需使用标准分析器(默认),并根据需要进行构建。如果您需要搜索多个字段,或查看匹配查询,但我希望搜索引擎功能强大,请使用multi_match。对于搜索,您建议使用哪种查询?模糊、匹配、匹配+模糊,什么?如果不知道确切的用例和搜索功能,很难推荐一种查询类型。正如@DanTuffery所建议的,从标准分析器开始,在第一步中使用简单的匹配查询。然后慢慢改进你的搜索。