2014-02-03 4 views
1

Я пытаюсь инициализировать базовый индекс, который будет использовать анализатор пробелов и я просто хочу, чтобы подтвердить, что я делаю это правильноСоздание индекса с «пробелами» анализатор

curl -XPUT localhost:9200/test -d '{ 
"settings" : { 
    "index" : { 
    "analysis": { 
     "analyzer": { 
     "whitespace": { 
      "type": "whitespace", 
      "tokenizer": "whitespace" 
     } 
     } 
    } 
    } 
} 
}' 

Когда я делаю это я получаю

{"ok":true,"acknowledged":true} 

, но если бы я затем перейти к http://localhost:9200/_plugin/head/ и на действия выпадающий выбрать Test Analyzer с текстом «это тест», он возвращает только один маркер, «тест».

ответ

2

Тест прямого анализатора будет по умолчанию стандартным анализатором. Вместо этого напишите custom_analyzer и проверьте, что в индексе используется анализ api. Анализатор, который вы написали, не является обычным или по умолчанию. Вы также можете настроить анализатор на анализатор по умолчанию.

Набор пробельного анализатора в качестве анализатора по умолчанию:

curl -XPUT localhost:9200/test -d '{ 
"settings" : { 
    "index" : { 
    "analysis": { 
     "analyzer": { 
     "default": { 
      "type": "whitespace", 
      "tokenizer": "whitespace" 
     } 
     } 
    } 
    } 
} 
}' 

Установите пробельный анализатор в качестве пользовательского анализатора:

curl -XPUT localhost:9200/test -d '{ 
"settings" : { 
    "index" : { 
    "analysis": { 
     "analyzer": { 
     "myAnalyzer": { 
      "type": "custom", 
      "tokenizer": "whitespace" 
     } 
     } 
    } 
    } 
} 
}' 

Как проверить их ??

Тестирование анализатора по умолчанию на конкретный индекс:

curl -XGET 'localhost:9200/test/_analyze?text=this+is+a+test' 

Тестирование пользовательских анализатор на конкретный индекс:

curl -XGET 'localhost:9200/test/_analyze?analyzer=myAnalyzer' -d 'this is a test' 
Смежные вопросы