Learning Elasticsearch.
Store, search, and analyze your data with ease using Elasticsearch 5.xAbout This Book* Get to grips with the basics of Elasticsearch concepts and its APIs, and use them to create efficient applications* Create large-scale Elasticsearch clusters and perform analytics using aggregation* This comprehen...
Clasificación: | Libro Electrónico |
---|---|
Autor principal: | |
Formato: | Electrónico eBook |
Idioma: | Inglés |
Publicado: |
Birmingham :
Packt Publishing,
2017.
|
Temas: | |
Acceso en línea: | Texto completo |
Tabla de Contenidos:
- Cover
- Copyright
- Credits
- About the Author
- About the Reviewer
- www.PacktPub.com
- Customer Feedback
- Table of Contents
- Preface
- Chapter 1: Introduction to Elasticsearch
- Basic concepts of Elasticsearch
- Document
- Index
- Type
- Cluster and node
- Shard
- Interacting with Elasticsearch
- Creating a document
- Retrieving an existing document
- Updating an existing document
- Updating a partial document
- Deleting an existing document
- How does search work?
- Importance of information retrieval
- Simple search query
- Inverted index
- Stemming
- Synonyms
- Phrase search
- Apache Lucene
- Scalability and availability
- Relation between node, index, and shard
- Three shards with zero replicas
- Six shards with zero replicas
- Six shards with one replica
- Distributed search
- Failure handling
- Strengths and limitations of Elasticsearch
- Summary
- Chapter 2: Setting Up Elasticsearch and Kibana
- Installing Elasticsearch
- Installing Java
- Windows
- Starting and stopping Elasticsearch
- Mac OS X
- Starting and stopping Elasticsearch
- DEB and RPM packages
- Debian package
- RPM package
- Starting and stopping Elasticsearch
- Sample configuration files
- Verifying Elasticsearch is running
- Installing Kibana
- Mac OS X
- Starting and stopping Kibana
- Windows
- Starting and stopping Kibana
- Query format used in this book (Kibana Console)
- Using cURL or Postman
- Health of the cluster
- Summary
- Chapter 3: Modeling Your Data and Document Relations
- Mapping
- Dynamic mapping
- Create index with mapping
- Adding a new type/field
- Getting the existing mapping
- Mapping conflicts
- Data type
- Metafields
- How to handle null values
- Storing the original document
- Searching all the fields in the document
- Difference between full-text search and exact match.
- Core data types
- Text
- Keyword
- Date
- Numeric
- Boolean
- Binary
- Complex data types
- Array
- Object
- Nested
- Geo data type
- Geo-point data type
- Specialized data type
- IP
- Mapping the same field with different mappings
- Handling relations between different document types
- Parent-child document relation
- How are parent-child documents stored internally?
- Nested
- Routing
- Summary
- Chapter 4: Indexing and Updating Your Data
- Indexing your data
- Indexing errors
- Node/shards errors
- Serialization/mapping errors
- Thread pool rejection error
- Managing an index
- What happens when you index a document?
- Updating your data
- Update using an entire document
- Partial updates
- Scripted updates
- Upsert
- NOOP
- What happens when you update a document?
- Merging segments
- Using Kibana to discover
- Using Elasticsearch in your application
- Java
- Transport client
- Dependencies
- Initializing the client
- Sniffing
- Node client
- REST client
- Third party clients
- Indexing using Java client
- Concurrency
- Translog
- Async versus sync
- CRUD from translog
- Primary and Replica shards
- Primary preference
- More replicas for query throughput
- Increasing/decreasing the number of replicas
- Summary
- Chapter 5: Organizing Your Data and Bulk Data Ingestion
- Bulk operations
- Bulk API
- Multi Get API
- Update by query
- Delete by query
- Reindex API
- Change mappings/settings
- Combining documents from one or more indices
- Copying only missing documents
- Copying a subset of documents into a new index
- Copying top N documents
- Copying the subset of fields into new index
- Ingest Node
- Organizing your data
- Index alias
- Index templates
- Managing time-based indices
- Shrink API
- Summary
- Chapter 6: All About Search
- Different types of queries.
- Sample data
- Querying Elasticsearch
- Basic query (finding the exact value)
- Pagination
- Sorting based on existing fields
- Selecting the fields in the response
- Querying based on range
- Handling dates
- Analyzed versus non-analyzed fields
- Term versus Match query
- Match phrase query
- Prefix and match phrase prefix query
- Wildcard and Regular expression query
- Exists and missing queries
- Using more than one query
- Routing
- Debugging search query
- Relevance
- Queries versus Filters
- How to boost relevance based on a single field
- How to boost score based on queries
- How to boost relevance using decay functions
- Rescoring
- Debugging relevance score
- Searching for same value across multiple fields
- Best matching fields
- Most matching fields
- Cross-matching fields
- Caching
- Node Query cache
- Shard request cache
- Summary
- Chapter 7: More Than a Search Engine (Geofilters, Autocomplete, and More)
- Sample data
- Correcting typos and spelling mistakes
- Fuzzy query
- Making suggestions based on the user input
- Implementing
- Term suggester
- Phrase suggester
- Implementing the autocomplete feature
- Highlighting
- Handling document relations using parent-child
- The has_parent query
- The has_child query
- Inner hits for parent-child
- How parent-child works internally
- Handling document relations using nested
- Inner hits for nested documents
- Scripting
- Script Query
- Post Filter
- Reverse search using the percolate query
- Geo and Spatial Filtering
- Geo Distance
- Using Geolocation to rank the search results
- Geo Bounding Box
- Sorting
- Multi search
- Search templates
- Querying Elasticsearch from Java application
- Summary
- Chapter 8: How to Slice and Dice Your Data Using Aggregations
- Aggregation basics
- Sample data
- Query structure.
- Multilevel aggregations
- Types of aggregations
- Terms aggregations (group by)
- Size and error
- Order
- Minimum document count
- Missing values
- Aggregations based on filters
- Aggregations on dates (range, histogram)
- Aggregations on numeric values (range, histogram)
- Aggregations on geolocation (distance, bounds)
- Geo distance
- Geo bounds
- Aggregations on child documents
- Aggregations on nested documents
- Reverse nested aggregation
- Post filter
- Using Kibana to visualize aggregations
- Caching
- Doc values
- Field data
- Summary
- Chapter 9: Production and Beyond
- Configuring Elasticsearch
- The directory structure
- zip/tar.gz
- DEB/RPM
- Configuration file
- Cluster and node name
- Network configuration
- Memory configuration
- Configuring file descriptors
- Types of nodes
- Multinode cluster
- Inspecting the logs
- How nodes discover each other
- Node failures
- X-Pack
- Windows
- Mac OS X
- Debian/RPM
- Authentication
- X-Pack basic license
- Monitoring
- Monitoring Elasticsearch clusters
- Monitoring indices
- Monitoring nodes
- Thread pools
- Elasticsearch server logs
- Slow logs
- Summary
- Chapter 10: Exploring Elastic Stack (Elastic Cloud, Security, Graph, and Alerting)
- Elastic Cloud
- High availability
- Data reliability
- Security
- Authentication and roles
- Securing communications using SSL
- Graph
- Graph UI
- Alerting
- Summary
- Index.