2013-12-02 7 views
0

Мне нужно создать индекс от mongodb. Название Colection является Product и имеет такую ​​структуру:ElasticSearch индекс от mongodb?

{ 
    "_id": ObjectId("5239656f60663de206b1053e"), 
    "brand": "<brandName>", 
    "category": { 
     "$ref": "Category", 
     "$id": ObjectId("50cb515760663d3577000043"), 
     "$db": "<dbName>" 
    }, 
    "image": "<imageUrl>", 
    "integraId": "<someId>", 
    "isActive": <isActive>, 
    "name": "<productName>", 
    "slug": "<slug>" 
} 

Коллекция Product имеет более 30 000 строк, но elasticsearch индексации только ~ 10 000 строк. Мой запрос для создания индекса:

{ 
    "type": "mongodb", 
    "mongodb": { 
    "servers": [ 
     { "host": "127.0.0.1", "port": 27017 } 
    ], 
    "options": { 
     "secondary_read_preference": true 
    }, 
    "db": "<dbName>", 
    "collection": "Product" 
    }, 
    "index": { 
    "name": "test", 
    "type": "test_type" 
    } 
} 

И только второй вопрос: Как я могу индексации только некоторые поля (имя, категорию (получить грести по идентификатору из другой коллекции) и бренда)?

+0

И сколько элементов возвращается на основании вышеуказанного запроса коллекции продуктов? Может быть, этот запрос содержит только 10Kish? Что касается второго, я не буду полностью следовать за тобой, но я думаю, что ты говоришь об усыновлении. Не уверен, что это то, что вы собираетесь делать. http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-update.html –

+0

Я решаю первую проблему указания необходимых полей для индексирования, но я не знаю, как решить вторую - вытащить еще одну коллекционную коробку и подставить ее в индекс http://stackoverflow.com/questions/20346084/doctrine-conections-in-mongodb-to-elasticsearch-index –

ответ

0

MongoDB имеет полнотекстового поиска, построенный в экспериментально в версии 2.4, если вы хотите поэкспериментировать с этим: http://docs.mongodb.org/manual/core/index-text/ может быть способный запрашивать более эффективно. Я понимаю, что это не то же самое, что решение поиска elasticsearch, которое вы ищете, но это может быть другим способом решения проблемы. Удачи!

+1

Спасибо, ранен, но я надеюсь, что elasticsearch имеет хорошее решение для этой проблемы, потому что по сравнению с полнотекстовым поиском mongodb elasticsearch работает очень быстро. И я думаю, что mongodb не будет разрабатывать поисковую систему далее ... –

+1

Я понимаю. Это не помешает экспериментировать, если MongoDB уже находится в вашем стеке. Удачи и ответ ниже моего использования группы google или канала irc могут предоставить дополнительную информацию. Удачи! – ranman

Смежные вопросы