일부 특수 문자와 용어를 사용하여 일부 문서를 Elasticsearch에서 검색 할 수 있기를 원합니다. 내가 좋아하는 쿼리 문자열 사용할 수 있도록하려면탄성 검색 : 일부 특수 문자를 통해 문서를 검색하는 데 사용할 분석기
"HEY YOU! Thanks for reading this post!"
:
{
"query": {
"query_string": {
"default_field": "content",
"query": "\"!\""
}
}
}
을 그리고 그 결과로 이전 문서를 가지고 예를 들어, 나는 다음과 같은 문서가있는 경우. 그러나 나는 또한 쿼리하여 문서를 가질 수 있도록하려면 :
{
"query": {
"query_string": {
"default_field": "content",
"query": "hey AND you"
}
}
}
나는 현재 표준 토크 나이를 사용하고 있지만 특수 문자를 쿼리 할 수 없습니다, 그것은 나에게 어떤 문서를 반환하지 않습니다. 이러한 유형의 작업에 이미 토큰 라이저가 정의되어 있습니까? 나는 필드를 분석하지 않는 것으로 생각했지만 소문자 부분은 가지지 않을 것입니다.
편집는 :
나는 사용자 지정 분석기 생성 :{
"sw3": {
"settings": {
"index": {
"number_of_shards": "5",
"provided_name": "sw3",
"creation_date": "1493907201172",
"analysis": {
"analyzer": {
"my_analyzer": {
"filter": [
"lowercase"
],
"type": "custom",
"tokenizer": "whitespace"
}
}
},
"number_of_replicas": "1",
"uuid": "e0_9cIFrQWqn-zqYeg0q5g",
"version": {
"created": "5030299"
}
}
}
}
}
을하지만하려고하면
{
"query": {
"query_string": {
"default_field": "content",
"query": ";"
}
}
}
나는 어떤 결과를 얻을 수 없습니다. 그래서 다음을 시도했습니다.
{
"query": {
"match": {
"content": ";"
}
}
}
하지만 여전히 결과가 없습니다.
GET /my_index/_analyze?analyzer=my_analyzer
{
"text": "Hey ; what's up"
}
그리고 쿼리의 결과입니다 : 다음 tokeniser이 제대로 작동 할 때
{
"tokens": [
{
"token": "hey",
"start_offset": 0,
"end_offset": 3,
"type": "word",
"position": 0
},
{
"token": ";",
"start_offset": 4,
"end_offset": 5,
"type": "word",
"position": 1
},
{
"token": "what's",
"start_offset": 6,
"end_offset": 12,
"type": "word",
"position": 2
},
{
"token": "up",
"start_offset": 13,
"end_offset": 15,
"type": "word",
"position": 3
}
]
}
왜 내가 어떤 문서를 검색 할 수 없습니다 나는 정확히 tokeniser을 무엇을 보려고?
답변 결과로 내 질문이 업데이트됩니다. – mel