elasticsearch는 병음을 검색하고 내용을 강조합니다.
5560 단어 elasticsearch
현재 경기장을 수색하는 기능을 실현하려면 경기장 명칭의 자모 줄임말에 따라 경기장을 수색할 수 있고 첫 번째 맞춤법에 대응하는 한자 부분을 강조해야 한다.
분석은 다음과 같이 정의할 수 있습니다.
"analysis": {
"tokenizer": {
"my_pinyin" : {
"type" : "pinyin",
"first_letter" : "only"
}
},
"filter": {
"pinyin_filter" : {
"type" : "pinyin",
"first_letter" : "only",
"padding_char" : ""
}
},
"analyzer": {
"pinyin_analyzer" : {
"tokenizer" : "ansj_query_token",
"filter" : "pinyin_filter"
},
"pinyin_all_analyzer" : {
"tokenizer" : "my_pinyin",
"filter" : "word_delimiter"
},
"index_ansj": {
"type": "custom",
"tokenizer": "ansj_index_token"
},
"query_ansj": {
"type": "custom",
"tokenizer": "ansj_query_token"
}
}
}
분사 부분은 ansj분사를 사용합니다.경기장 매핑은 다음과 같다.
{
"properties": {
"name": {
"type": "string",
"term_vector" : "with_positions_offsets",
"index_analyzer": "index_ansj",
"search_analyzer": "query_ansj",
"fields": {
"pinyin": {
"type": "string",
"index_analyzer": "pinyin_analyzer",
"search_analyzer": "query_ansj"
}
}
},
"address": {
"type": "string",
"term_vector" : "with_positions_offsets",
"index_analyzer": "index_ansj",
"search_analyzer": "query_ansj"
},
"createTime" : {
"type": "date",
"format": "yyy-MM-dd HH:mm:ss"
}
}
}
name 필드에서 사용하는 multi_fields 필드,name 인덱스를 만드는 동시에name를 만듭니다.pinyin 인덱스.쿼리를 검색하면 다음과 같이 쓸 수 있습니다.
{
"_source": ["createTime"],
"query": {
"multi_match": {
"type": "most_fields",
"query": "cs",
"fields": ["name", "name.pinyin","address"],
"minimum_should_match": "-20%"
}
},
"sort": [
{"createTime":{"order":"desc"}}
],
"highlight": {
"boundary_chars":".,!? \t
,。!?",
"pre_tags" : [""],
"post_tags" : [""],
"fields": {
"name" : {
"number_of_fragments" : 0
},
"name.pinyin" : {
"number_of_fragments" : 0
},
"address" : {
"number_of_fragments" : 0
}
}
}
}
예를 들어 시험장이라는 장소가 있다면'cs'를 입력해서 검색할 때도 이 장소를 검색할 수 있다.그리고 경기장 이름을 밝게 표시할 수 있습니다. 차이점은 첫 번째 항목을 입력하면 밝은값은name에 있습니다.pinyin에 한자를 입력하면 하이라이트는name,name,name입니다.pinyin 하이라이트 출력의 내용은 같습니다.
{
"took": 5,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"failed": 0
},
"hits": {
"total": 3,
"max_score": null,
"hits": [
{
"_index": "huiti_app_v1",
"_type": "stadium",
"_id": "id1",
"_score": null,
"_source": {
"createTime": "2015-01-01 00:00:00"
},
"highlight": {
"name.pinyin": [
" 1"
]
},
"sort": [
1420070400000
]
},
{
"_index": "huiti_app_v1",
"_type": "stadium",
"_id": "id2",
"_score": null,
"_source": {
"createTime": "2015-01-01 00:00:00"
},
"highlight": {
"name.pinyin": [
" 2"
]
},
"sort": [
1420070400000
]
},
{
"_index": "huiti_app_v1",
"_type": "stadium",
"_id": "id3",
"_score": null,
"_source": {
"createTime": "2015-01-01 00:00:00"
},
"highlight": {
"name.pinyin": [
" 3"
]
},
"sort": [
1420070400000
]
}
]
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
kafka connect e elasticsearch를 관찰할 수 있습니다.No menu lateral do dashboard tem a opção de connectors onde ele mostra todos os clusters do kafka connect conectados atu...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.