2016-09-23 14 views
0

Мы создаем поисковую систему для медицинского сообщества, где она может вытащить запись из mongoDB. В базе данных есть записи из разных медицинских сообществ, таких как врачи, лаборанты, патологоанатомы, специалисты и т. Д. Мы хотим добиться результата на основе имени, местности, оборудования, времени для расстояния (если у нас есть место). Мы используем Elasticsearch как поисковую систему.Как создать общую поисковую систему, используя elasticsearch?

Обновление: Я думаю, что это не было конкретным для ответа. Я просмотрел документацию, как указал Деннис Ич. Я заполнил индекс поиска по требованию, используя autosuggest, фильтры - ngram, fuzzy ...

У меня проблема с возможностью выделения. Вот мой код:

Blockquote

curl -XGET http://localhost:9200/hospital/hospitals/_search?pretty -d '{ 
    "query" : { 
    "fuzzy" : { 
     "_all" : "orthopadic" 
     } 
    }, 
    "highlight": { 
    "fields" : { 
     "*" : { 
     "pre_tags" : ["<p>"], 
     "post_tags" : ["</p>"], 
     "fragment_size" : 18 
     } 
    } 
    } 
}' 

выход:

Blockquote

{ 
    "took" : 459, 
    "timed_out" : false, 
    "_shards" : { 
    "total" : 5, 
    "successful" : 5, 
    "failed" : 0 
    }, 
    "hits" : { 
    "total" : 64, 
    "max_score" : 1.8097699, 
    "hits" : [ { 
     "_index" : "hospital", 
     "_type" : "hospitals", 
     "_id" : "105", 
     "_score" : 1.8097699, 
     "_source" : { 
     "reviews" : "283", 
     "name" : "Sohandas Udbalker M Vzsuoxhmkvfgijxzzjh", 
     "specialization" : "Orthopaedic", 
     "recommendation" : "146", 
     "seniority" : "24", 
     "likes" : "218", 
     "online_participation" : "58", 
     "online_booking" : "810", 
     "tracking_system" : "60", 
     "follow_up" : "53", 
     "consultation_point" : "52", 
     "online_prescription" : "29", 
     "patient_count" : "61", 
     "health_expense" : "94", 
     "location" : "bangalore" 
     }, 
     "highlight" : { 
     "_all" : [ "Vzsuoxhmkvfgijxzzjh <p>Orthopaedic</p> 146" ] 
     } 

Я хочу, чтобы выделить определенные поля. Он принимает номер фрагмента, как мы можем выделить конкретную область.

+0

Его действительно неясно, о чем вы точно просите. Я полагаю, вы должны прочитать документацию elasticsearch и просто начать индексировать свои данные. Скорее всего, вы найдете там все, что вам нужно. Если вам нужна помощь по определенной теме, вернитесь. Если вы уже решили взять elasticsearch, вы должны получить хотя бы некоторые знания от оценки? –

+0

Спасибо, Деннис, я просмотрел документацию, это действительно потрясающе, и я его реализую. –

ответ

0

Для создания общей поисковой системы вы должны удовлетворять следующим требованиям: 1) Полнотекстовый поиск - Возможность не только возвращать документы, содержащие точные ключевые слова. 2) Кластеризация. Распределите данные на разных узлах. 3) Горизонтальная масштабируемость - Возможность увеличения емкости кластера путем добавления большего количества узлов. 4) Auto Complete

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