2017-06-21 93 views
0

我存儲的網站在ElasticSearch的原始的HTML,例如場名爲「html_content」:Elasticsearch原始的HTML文檔搜索

"\ufeff<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\">\t<head>\t \t<base href=\"http://forum.pl\">\t \t\t \t<!-- Google Webmaster Tools -->\t\t\t\t<meta name=\"google-site-verification\" content=\"F6oatYg_CzKAKO7hA3Sy11S10eS0_ZYC1yGaoMbKYTU\" />\t\t\t \t <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\t <meta http-equiv=\"X-UA-Compatible\" content=\"IE=EmulateIE7\" />\t \t \t \t \t<title>Dolnośląska Fundacja Rozowju Regionalnego - Forum.pl</title>\t \t <link href=\"/public/css/style.css\" rel=\"stylesheet\" type=\"text/css\">\t\t<link rel=\"stylesheet\" href=\"/public/css/menu.css\" type=\"text/css\" />\t\t<!--[if IE 6]>\t\t<link href=\"/public/css/clean_ie6.css\" rel=\"stylesheet\" type=\"text/css\" />\t\t<![endif]-->\t\t<!--[if IE 7]>\t\t<link href=\"/public/css/clean_ie.css\" rel=\"stylesheet\" type=\"text/css\"  

現在我想執行搜索,找到的所有文件:

rel="stylesheet" type="text/css  

在html_content字段中。

我應該如何創建我的索引(我應該使用哪些映射和分析器)? 我應該如何創建搜索查詢?

我嘗試了很多從文檔和谷歌的東西,但我找不到答案。

+0

搜索關鍵字'stylesheet'應該就夠了,你不覺得嗎? – Val

+0

重點是我需要完全匹配 – Baks

回答

0

對於分析儀,我用:

{ 
"settings": { 
"analysis": { 
    "analyzer": { 
    "testowy": { 
     "type": "custom", 
     "tokenizer": "standard", 
     "filter": "lowercase" 
    } 
    } 
}}} 

搜索,例如:

{ 
"query": { 
    "match_phrase" : { 
     "html_content" : { 
      "query" : "rel=\"stylesheet\" type=\"text/css" 
     } 
    } 
}} 

或用2場比賽,找到文件:

{ 
    "query": { 
    "bool": { 
     "must": [ 
     {"match_phrase": {"html_content": "rel=\"stylesheet\" type=\"text/css"}}, 
     {"match_phrase": {"html_content": "<meta name=\"distribution\""}} 
     ] 
    } 
} 
} 

我仍然不;噸知道爲什麼 "rel=\"stylesheet\" type=\"text/css" 不等於

"rel=\"stylesheet\" type=\"text/cs" 
+0

https://stackoverflow.com/a/44803618/7367392繼承人更好 – Baks