Elasticsearch raw html 文档搜索
Elasticsearch raw html document search
我将网站的原始 html 存储在 ElasticSearch 中,示例字段名为 "html_content":
"\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 字段中。
我应该如何创建索引(我应该使用什么映射和分析器)?
我应该如何创建搜索查询?
我从文档中尝试了很多东西 google 但我找不到答案。
我使用的分析仪:
{
"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"
我将网站的原始 html 存储在 ElasticSearch 中,示例字段名为 "html_content":
"\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 字段中。
我应该如何创建索引(我应该使用什么映射和分析器)? 我应该如何创建搜索查询?
我从文档中尝试了很多东西 google 但我找不到答案。
我使用的分析仪:
{
"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"