elasticsearch 如何在弹性搜索中创建标准小写分析器并向其添加值
在过去的几天里,我一直带着这个在家里转悠,试着按不同的顺序做一些事情,但我不明白为什么它不起作用 我试图用一个分析器在Elasticsearch中创建一个索引,该分析器与“标准”分析器相同,但在存储记录时保留大写字符 我创建的分析器和索引如下所示:elasticsearch 如何在弹性搜索中创建标准小写分析器并向其添加值,elasticsearch,search,tokenize,analyzer,standardanalyzer,elasticsearch,Search,Tokenize,Analyzer,Standardanalyzer,在过去的几天里,我一直带着这个在家里转悠,试着按不同的顺序做一些事情,但我不明白为什么它不起作用 我试图用一个分析器在Elasticsearch中创建一个索引,该分析器与“标准”分析器相同,但在存储记录时保留大写字符 我创建的分析器和索引如下所示: PUT /upper { "settings": { "index" : { "analysis" : { "analyzer": { "rebuilt_sta
PUT /upper
{
"settings": {
"index" : {
"analysis" : {
"analyzer": {
"rebuilt_standard": {
"tokenizer": "standard",
"filter": [
"standard"
]
}
}
}
}
},
"mappings": {
"doc": {
"properties": {
"title": {
"type": "text",
"analyzer": "rebuilt_standard"
}
}
}
}
}
然后添加两个记录以进行如下测试
POST /upper/doc
{
"text" : "TEST"
}
添加第二条记录
POST /upper/doc
{
"text" : "test"
}
使用/upper/_设置可提供以下内容:
{
"upper": {
"settings": {
"index": {
"number_of_shards": "5",
"provided_name": "upper",
"creation_date": "1537788581060",
"analysis": {
"analyzer": {
"rebuilt_standard": {
"filter": [
"standard"
],
"tokenizer": "standard"
}
}
},
"number_of_replicas": "1",
"uuid": "s4oDgdsFTxOwsdRuPAWEkg",
"version": {
"created": "6030299"
}
}
}
}
}
但是当我用下面的查询搜索时,我仍然得到两个匹配项!上下两种情况,这意味着在我存储记录时未应用分析仪
像这样搜索
GET /upper/_search
{
"query": {
"term": {
"text": {
"value": "test"
}
}
}
}
提前谢谢 首先,您在
标题
字段而不是文本
字段上设置分析器(因为您的搜索是在文本属性上,并且您只使用文本
属性为文档编制索引)
试一试
并随时通知我们;) 首先,您在
标题
字段而不是文本
字段上设置分析器(因为您的搜索是在文本属性上,并且您只使用文本
属性为文档编制索引)
试一试
并随时通知我们;) 你能提供两个api的o/p吗。如果需要,用ES主机替换localhost。你能提供两个api的o/p吗。如果需要,用ES主机替换localhost。
"properties": {
"title": {
"type": "text",
"analyzer": "rebuilt_standard"
}
}
"properties": {
"text": {
"type": "text",
"analyzer": "rebuilt_standard"
}
}