2017-03-09 30 views
0

我有字段"name":"The leonardo da vinci"。在映射時這個字段是用標準分析器分析的。當我在這個領域使用match_phrase它還可選配如文檔The leonardo da vinci USThe leonardo da vinci UKThe leonardo da vinci GBR如何在Elasticsearch中找到確切的短語?

我怎麼能抽到僅具有"name":"The leonardo da vinci"不改變我的映射文件?

可以嗎?

感謝

回答

0

如果你正在尋找一個精確匹配,你不需要使用匹配的短語,只是用一個名詞查詢。

{ 
    "query": { 
    "term": { 
     "name":"The leonardo da vinci" 
    } 
    } 
} 

查看this瞭解更多關於術語和全文搜索的信息。

編輯:通過填充兩個namename.raw

'name': { 
    'type': 'text', 
    'fields': { 
    'raw': { 
     'type': 'keyword' 
    } 
    } 
} 

重新索引,然後你可以在name場使用匹配查詢全文搜索:在分析了現場的情況下,你可以將子場添加到它和一個術語查詢name.raw上的確切搜索。

+0

是的,我得到了..但是,如果我的領域沒有分析,但在這種情況下,我的領域是分析使用該術語.. – Seeker

+0

公平,請參閱編輯 – paqash

+0

謝謝..有沒有選擇,而不是改變映射,因爲我想要做到這一點,而不是reindexing。 – Seeker