在Elasticsearch中建立索引时如何进行映射

ElasticSearch在一个网站中使用,其中我从中索引了数据MongoDB

def postToEs(self):

"""

put data to the elasticsearch

"""

es = Elasticsearch()

cursor = self.getMongoData()

for document in cursor:

esdoc={}

esdoc["category"] = document.get("category")

esdoc["description"] = document.get("description")

esdoc["title"] = document.get("title")

esdoc["link"] = document.get("link")

esdoc["state"] = document.get("state")

esdoc_id = esdoc["link"]

es.index(

index = 'news',

doc_type = 'allnews',

id = esdoc_id,

body = json.dumps(esdoc)

)

这很好。但目前,我必须在state字段中搜索的完全匹配项elasticsearch。目前,如果我搜索其条目,New

York也会给出的结果NewHampshire。我找到了此链接,并且看到了需要mapping在数据上添加的elasticsearch文档。我的问题是如何在当前情况下在数据上添加映射?还是有更好的方法呢?

回答:

curl -XDELETE "http://hostname:9200/index/type"

curl -XDELETE "http://hostname:9200/_river"

curl -XPUT "http://hostname:9200/index/type/_mapping" -d'

{

"allnews": {

"properties": {

"category": {

"type": "string"

},

"description": {

"type": "string"

},

"link": {

"type": "string"

},

"state": {

"type": "string",

"index" : "not_analyzed"

},

"title": {

"type": "string"

}

}

}

}'

完成这些步骤后,将river插件配置同步mongodb到elasticsearch。

希望能帮助到你..!

以上是 在Elasticsearch中建立索引时如何进行映射 的全部内容, 来源链接: utcz.com/qa/422070.html

回到顶部