我可以限制 elasticsearch 5.3 中索引字段的数量吗
can I limit number of indexing fields in elasticsearch 5.3
Elasticsearch 新手。我看到默认情况下,ES 为每个字段中的每个单词创建索引。但是在我的用例中,我将只搜索两个字段,所以我想以某种方式告诉 ES 不要为文档中的所有内容创建索引,而是只为我在映射中指定的字段创建索引。
这是我的映射
PUT /benefits
{
"mappings": {
"benefit": {
"_all": {"enabled": false},
"properties": {
"subCategory": {"type": "text"},
"description": {"type": "text"}
}
}
}
}
我的文档看起来像这样
{
"bpi" : "123456",
"category" : "CAT1",
"subCategory" : "Primary Care Physician Copay",
"planName" : "MyPlan HMO Individual",
"description" : "0 per office visit for Convenient Care & Minute Clinics Complete ABC Document",
"categoryId" : 200.0,
"desktop360Id" : 1001.0,
"createTimeStamp" : "2017-02-21T22:00:12.000Z"
}
所以我将只搜索 "subCategory"
和 "description"
(不搜索 "planName"
或任何其他字段文本)并创建 index/mapping,如上图所示,但我仍然可以在其他字段上搜索文本。例如,如果我从 "planName"
字段搜索 "MyPlan",则搜索有效并显示此文档。这是否意味着它为所有字段上的所有单词('a'、'of' 类型除外)创建了索引?我问这个问题是因为,我不想把内存花在我不需要的索引上。
有什么建议吗?
为了从索引中排除其他字段,您必须在映射中指定它们并将 index
属性 设置为 no
值。这是一个例子
{
"mappings": {
"benefit": {
"properties": {
"subCategory": {
"type": "string"
},
"description": {
"type": "string"
},
"planName": {
"type": "string",
"index": "no"
},
"bpi": {
"type": "string",
"index": "no"
},
"category": {
"type": "string",
"index": "no"
}
}
}
}
}
Elasticsearch 新手。我看到默认情况下,ES 为每个字段中的每个单词创建索引。但是在我的用例中,我将只搜索两个字段,所以我想以某种方式告诉 ES 不要为文档中的所有内容创建索引,而是只为我在映射中指定的字段创建索引。
这是我的映射
PUT /benefits
{
"mappings": {
"benefit": {
"_all": {"enabled": false},
"properties": {
"subCategory": {"type": "text"},
"description": {"type": "text"}
}
}
}
}
我的文档看起来像这样
{
"bpi" : "123456",
"category" : "CAT1",
"subCategory" : "Primary Care Physician Copay",
"planName" : "MyPlan HMO Individual",
"description" : "0 per office visit for Convenient Care & Minute Clinics Complete ABC Document",
"categoryId" : 200.0,
"desktop360Id" : 1001.0,
"createTimeStamp" : "2017-02-21T22:00:12.000Z"
}
所以我将只搜索 "subCategory"
和 "description"
(不搜索 "planName"
或任何其他字段文本)并创建 index/mapping,如上图所示,但我仍然可以在其他字段上搜索文本。例如,如果我从 "planName"
字段搜索 "MyPlan",则搜索有效并显示此文档。这是否意味着它为所有字段上的所有单词('a'、'of' 类型除外)创建了索引?我问这个问题是因为,我不想把内存花在我不需要的索引上。
有什么建议吗?
为了从索引中排除其他字段,您必须在映射中指定它们并将 index
属性 设置为 no
值。这是一个例子
{
"mappings": {
"benefit": {
"properties": {
"subCategory": {
"type": "string"
},
"description": {
"type": "string"
},
"planName": {
"type": "string",
"index": "no"
},
"bpi": {
"type": "string",
"index": "no"
},
"category": {
"type": "string",
"index": "no"
}
}
}
}
}