Elasticsearch学习笔记之—wildcard、fuzzy、regexp、prefix
生活随笔
收集整理的這篇文章主要介紹了
Elasticsearch学习笔记之—wildcard、fuzzy、regexp、prefix
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
WildCard
GET /people/_search
{
"query":{
"wildcard":{
"firstName":"japa*"
}
}
}
上面的可以使用問號和星號兩個形式的查詢,下面是解釋:
?, which matches any single character 匹配任意個字符
*, which can match zero or more characters, including an empty one,翻譯:可以匹配0個或多個字符,包含空字符
Fuzzy
GET /people/_search
{
"query":{
"fuzzy":{
"firstName":"japen"
}
}
}
japen可以匹配到japan,即使有一個字符不一樣,也可以匹配出來
Regexp
假設您只想匹配以W開頭,緊跟著數字的郵政編碼。使用regexp查詢能夠讓你寫下更復雜的模式:備注:這個正則最好是用到不分詞的字段里,如果做過分詞以后就只能對分詞后的詞組或詞進行搜索,意義就不大了。
GET /my_index/address/_search
{
"query": {
"regexp": {
"postcode": "W[0-9].+"
}
}
}
GET /person_index/_search
{
"query":{
"regexp":{
"postCode":
{
"value":"W.*"
}
}
}
}
匹配手機號:
GET /person_index/_search
{
"query":{
"regexp":{
"address":
{
"value":"1[35678][0-9]{9}"
}
}
}
}
這個正則表達式的規定了詞條需要以W開頭,緊跟著一個0到9的數字,然后是一個或者多個其它字符。
下面例子是所有以 wxopen 開頭的正則
{
"query": {
"regexp": {
"hostname": "wxopen.*"
}
}
}
prefix
以什么字符開頭的,可以更簡單地用 prefix,如下面的例子
GET /_search
{
"query": {
"prefix": {
"user": {
"value": "ki"
}
}
}
}
或者
GET /_search
{
"query": {
"prefix" : { "user" : "ki" }
}
}
總結
以上是生活随笔為你收集整理的Elasticsearch学习笔记之—wildcard、fuzzy、regexp、prefix的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sublime flatLand 主题
- 下一篇: 邪恶力量第一至九季/全集Supernat