Как упругий поиск может найти слова во вложенном файле couchdb? - PullRequest
2 голосов
/ 18 августа 2011

Привет. Пожалуйста, дайте мне указание. / Я использую эластичный поиск 0.17.6 и couchdb 1.1.0

Я создал два документа на couchdb: Каждый документ имеет строковые поля: имя, сообщение.Первый прикреплен к текстовому файлу «test.txt», а второй - нет.Код JSon, сгенерированный CouchDB, выглядит следующим образом:

{
  "_id": "ID1",
  "_rev": "6-e1ab4c5c65b98e9a0d91e5c8fc1629bb",
  "name": "Document1",
  "message": "Evaluate Elastic Search",
  "_attachments":   {
     "test.txt": {
       "content_type": "text/plain",
       "revpos": 5,
       "digest": "md5-REzvAVEZoSV69SLI/vaflQ==",
       "length": 86,
       "stub": true
     }
  }
}

{

 "_id": "ID2",
 "_rev": "2-72142ec18248cedb4dba67305d136aa8",
 "name": "Document2",
 "message": "test Elastic Search"
}

Эти два документа находятся в базе данных my_test_couch_db

Я использую Elasticsearch (ES) для индексации этих документов с помощью плагинов: river икартограф-вложение.Я ожидаю, что для каждого данного текста ES сможет найти не только соответствующий текст в полях документа, но и в файле вложения * .txt.Но это невозможно.Я пробую разными способами: я создал индекс вручную, отобразил (автоматически и вручную), настроил реку и т. Д., Но ES может только найти слова в полях документа, но не может найти их в файлах вложений * .txt.Я следую указаниям сайта http://www.elasticsearch.org, но он тоже не работает.

Спасибо за ваши ответы.

Вот мои команды:

curl -X PUT "localhost:9200/test_idx_1"

curl -X PUT "localhost:9200/test_idx_1/test_mapping_1/_mapping" -d '{
  "test_mapping_1": {
    "properties": {
      "_attachments": {
        "type": "attachment",
        "index": "yes"
      }
    }
  }
}'

curl -XPUT 'http://localhost:9200/_river/test_river_1/_meta' -d '{
  "type": "couchdb",
  "couchdb": {
    "host": "localhost",
    "port": 5984,
    "db": "my_test_couch_db",
    "filter": null
  },
  "index": {
    "index": "test_idx_1",
    "type": "test_mapping_1"
  }
}'

затем я пытаюсь найти

curl -XPOST 'http://localhost:9200/my_test_couch_db/my_test_couch_db/_search'

(два документа очень хорошо найдены)

curl -XPOST 'http://localhost:9200/my_test_couch_db/my_test_couch_db/_search' -d '{
  "query": {
    "text": {
      "_all": "test"
    }
  }
}'

Вот вывод

{
  "took": 3,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
  },
  "hits": {
    "total": 1,
    "max_score": 0.081366636,
    "hits": [
      {
        "_index": "my_test_couch_db",
        "_type": "my_test_couch_db",
        "_id": "ID2",
        "_score": 0.081366636,
        "_source": {
          "message": "test Elastic Search",
          "_rev": "2-72142ec18248cedb4dba67305d136aa8",
          "_id": "ID2",
          "name": "Document2"
        }
      }
    ]
  }
}

Как видите,ES может найти только слово «test» в поле сообщения, но не может найти это слово в файлах * .text.

Я пробую другие запросы:

curl -XPOST 'http://localhost:9200/my_test_couch_db/my_test_couch_db/_search' -d '{
  "query": {
    "text": {
      "_attachments": "test"
    }
  }
}'

{
  "took": 0,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
  },
  "hits": {
    "total": 0,
    "max_score": null,
    "hits": []
  }
}

curl -XPOST 'http://localhost:9200/my_test_couch_db/my_test_couch_db/_search' -d '{
  "query": {
    "text": {
      "_attachments.fields.file": "test"
    }
  }
}'

{
  "took": 0,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
  },
  "hits": {
    "total": 0,
    "max_score": null,
    "hits": []
  }
}

ВыводничегоЯ пробую другие сопоставления, но они тоже не работают.

Почему и как решить эту проблему?

1 Ответ

0 голосов
/ 08 сентября 2012

Вложения еще не загружены рекой couchDb. Я обновил его, но все еще жду пользователей, чтобы он работал нормально.

См. https://github.com/dadoonet/elasticsearch-river-couchdb/tree/attachments Вы можете попробовать это здесь: https://github.com/downloads/dadoonet/elasticsearch-river-couchdb/elasticsearch-river-couchdb-1.2.0-SNAPSHOT.zip

Если он работает нормально, я могу создать запрос на извлечение.

...