Carrot2+ElasticSearch Базовый поток информации

Я использую Carrot2 и ElasticSearch. У меня есть эластичный поисковый сервер, работающий с большим количеством данных, когда я установил плагин carrot2.

Хотел получить ответы на несколько основных вопросов:

  • Будет ли кластеризация работать только с недавно проиндексированными документами или даже со старыми документами?

  • Как я могу указать, какие поля следует рассматривать для кластеризации?

  • Команда curl работает и дает некоторые результаты. Как я могу получить команду curl, которая принимает JSON в качестве входных данных для URL-адреса REST API в форме localhost: 9200/article-index/article/_search_with_clusters?.....

Цените любую помощь.


person Pratik Poddar    schedule 08.05.2014    source источник


Ответы (2)


Да, если вы хотите использовать плагин сразу после установки ES, вам нужно сделать собственные вызовы REST. Я полагаю, что вы используете Python. Взгляните на запросы. Это восхитительный инструмент REST для Python.

Чтобы сделать POST-запросы, вы можете сделать следующее:

import json
url = 'localhost:9200/article-index/article/_search_with_clusters'
payload = {'some': 'data'}
r = requests.post(url, data=json.dumps(payload))
print r.text

Дополнительную информацию см. в документации по запросам.

person grasskode    schedule 09.05.2014

Будет ли кластеризация работать только с недавно проиндексированными документами или даже со старыми документами?

Работает даже со старыми документами.

Как я могу указать, какие поля следует рассматривать для кластеризации?

Вот пример использования набора данных Шекспира. Вопрос в том, какая из пьес Шекспира о войне?

$ curl -XPOST http://localhost:9200/shakespeare/_search_with_clusters?pretty -d '
{
  "search_request": {
    "query": {"match" : { "_all": "war" }},
    "size": 100
  },

  "max_hits": 0,
  "query_hint": "war",
  "field_mapping": {
    "title": ["_source.play_name"],
    "content": ["_source.text_entry"]
  },
  "algorithm": "lingo"
}'

Запустив это, вы получите обратно такие игры, как Ричард, Генри... Название - это то, что carrot2 использует для разработки имен кластеров, а текстовая запись - это то, что он использует для создания кластеров.

Команда curl работает и дает некоторые результаты. Как я могу получить команду curl, которая принимает JSON в качестве входных данных для URL-адреса REST API в форме localhost: 9200/article-index/article/_search_with_clusters?.....

Как правило, для вашего языка используйте клиентские библиотеки elasticsearch. выбора.

person leavesof3    schedule 02.09.2014