2015-07-15 4 views
0

я определил следующие токенизатор:пользовательских токенизатор не генерирует маркеры, как ожидается, если текст содержит специальные символы, такие как #, @

PUT /testanlyzer2 
{ 
     "settings" : { 
      "analysis" : { 
       "analyzer" : { 
        "my_ngram_analyzer" : { 
         "tokenizer" : "my_ngram_tokenizer" 
        } 
       }, 
       "tokenizer" : { 
        "my_ngram_tokenizer" : { 
         "type" : "nGram", 
         "min_gram" : "1", 
         "max_gram" : "3", 
         "token_chars": [ "letter", "digit","symbol","currency_symbol","modifier_symbol","other_symbol" ] 
        } 
       } 
      } 
     } 
    } 

For the following request 
    GET /testanlyzer2/_analyze?analyzer=my_ngram_analyzer&text="i a#m not available 9177" 

Result is: 

{ 
    "tokens": [ 
     { 
     "token": "i", 
     "start_offset": 1, 
     "end_offset": 2, 
     "type": "word", 
     "position": 1 
     }, 
     { 
     "token": "a", 
     "start_offset": 3, 
     "end_offset": 4, 
     "type": "word", 
     "position": 2 
     } 
    ] 
} 

Для следующего запроса ::

GET /testanlyzer2/_analyze?analyzer=my_ngram_analyzer&text="i a#m not available 9177" 

Результат:

{ 
    "tokens": [ 
     { 
     "token": "i", 
     "start_offset": 1, 
     "end_offset": 2, 
     "type": "word", 
     "position": 1 
     }, 
     { 
     "token": "a", 
     "start_offset": 3, 
     "end_offset": 4, 
     "type": "word", 
     "position": 2 
     } 
    ] 
} 

Для следующего запроса ::

GET /testanlyzer2/_analyze?analyzer=my_ngram_analyzer&text="i [email protected] not available 9177" 

Результат является:

Request failed to get to the server (status code: 0): 

Expected result should contain these special characters(@,#,currency's,etc..) as tokens. please correct me if anything wrong in my custom tokenizer. 

--Thanks

ответ

1

# специальный символ в Sense (если вы используете панель Marvel's Sense), и она комментирует линию.

Чтобы удалить HTML вытекающее/Sense специальных символов, я бы проверить это так:

PUT /testanlyzer2 
{ 
    "settings": { 
    "analysis": { 
     "analyzer": { 
     "my_ngram_analyzer": { 
      "tokenizer": "keyword", 
      "filter": [ 
      "substring" 
      ] 
     } 
     }, 
     "filter": { 
     "substring": { 
      "type": "nGram", 
      "min_gram": 1, 
      "max_gram": 3 
     } 
     } 
    } 
    }, 
    "mappings": { 
    "test": { 
     "properties": { 
     "text": { 
      "type": "string", 
      "analyzer": "my_ngram_analyzer" 
     } 
     } 
    } 
    } 
} 

POST /testanlyzer2/test/1 
{ 
    "text": "i [email protected] not available 9177" 
} 

POST /testanlyzer2/test/2 
{ 
    "text": "i a#m not available 9177" 
} 

GET /testanlyzer2/test/_search 
{ 
    "fielddata_fields": ["text"] 
} 
+0

..thanks свою работу, но у меня есть еще одна проблема с долларом. не могли бы вы посмотреть мое последнее сообщение. – Karunakar