2016-04-14 1 views
1

Я пытаюсь понять что-то об Эластическом поиске и подумал, может ли кто-нибудь помочь мне разобраться.Я не думаю, что полностью понимаю Эластичный поиск

Проблема у меня есть, сколько индексов я должен поддерживать, и если существует риск со слишком многими из них. Допустим, я хочу, чтобы индексировать книги в библиотеке и хотите, чтобы иметь возможность поиска:

  • Автор
  • ГЛАВЕ Имя
  • Название книги
  • Издательство

Как я вижу понимаю ES является механизмом хранения документов, что означает, что типы данных хранятся в отличие от нормализованной структуры RDMS. У меня есть сложность в том, что я создаю один тип данных и сохраняю только это или должен создать других?

Как бы я хранить данные, чтобы иметь возможность искать следующие комбинации:

  1. Всех Автор Издатель X
  2. Всех названия глав в книгах имен, начинающиеся с B и издателе Y
  3. Все Издатели для книг, написанных автором X с названием главы Y

Мне интересно, нужно ли мне создавать индекс для глав, где каждая глава имеет список всех издателей, которые особенность эта книга.

Могу ли я усложнять это?

ответ

4

Из того, что я вижу в вашем вопросе, вам нужно создать только один индекс (аналог базы данных в MySQL), внутри этого индекса вам нужно будет использовать тип контента (например, таблицу в MySQL), и каждая книга будет документом внутри Тип данных (например, строки в MySQL)

Вы можете добавить свою книгу как этот

POST library/books/ISBN-10:1449358543 
{ 
    "type": "Paperback", 
    "pages": 724, 
    "Publisher": "O'Reilly Media; 1 edition (Feb. 7 2015)", 
    "language": "English", 
    "tag": "Elasticsearch: The Definitive Guide Paperback – Feb 7 2015\nby Clinton Gormley (Author), Zachary Tong (Author)", 
    "desc": "Whether you need full-text search or real-time analytics of structured data—or both—the Elasticsearch distributed search engine is an ideal way to put your data to work. This practical guide not only shows you how to search, analyze, and explore data with Elasticsearch, but also helps you deal with the complexities of human language, geolocation, and relationships.\nIf you’re a newcomer to both search and distributed systems, you’ll quickly learn how to integrate Elasticsearch into your application. More experienced users will pick up lots of advanced techniques. Throughout the book, you’ll follow a problem-based approach to learn why, when, and how to use Elasticsearch features.\nUnderstand how Elasticsearch interprets data in your documents Index and query your data to take advantage of search concepts such as relevance and word proximity Handle human language through the effective use of analyzers and queries Summarize and group data to show overall trends, with aggregations and analytics Use geo-points and geo-shapes—Elasticsearch’s approaches to geolocation Model your data to take advantage of Elasticsearch’s horizontal scalability Learn how to configure and monitor your cluster in production" 
} 

Вы можете осуществлять поиск документов по любому полю

POST library/books/_search 
{ 
    "query": { 
    "term": { 
     "language": { 
     "value": "english" 
     } 
    } 
    } 
} 

Или любые поля комбинат ион

POST library/books/_search 
{ 
    "query": { 
    "bool": { 
     "should": [ 
     {"term": { 
      "language": { 
      "value": "english" 
      } 
     }}, 
     {"term": { 
      "type": { 
      "value": "paperback" 
      } 
     }} 
     ] 
    } 
    } 
} 
Смежные вопросы