What you will learn in Elasticsearch in Action, Second Edition
Chapter by chapter
Concepts explained in this book
- ElasticsearchElasticsearch is a distributed search and analytics engine for indexing, querying, and analyzing structured and unstructured data.
- mappingAn Elasticsearch mapping specifies document fields, their data types, and their indexing and handling rules.
- replicaA duplicate copy of a primary shard maintained on a different node for redundancy and read availability.
- computer clusterA cluster is a group of connected computing nodes that operates as a coordinated Elasticsearch system for distributed processing and storage.
- document APIA single-document API is an Elasticsearch document API that performs an operation on one document at a time.
- full-text searchA full-text query analyzes text and matches documents based on linguistic terms rather than exact field values.
- relevanceRelevance is the degree to which a search result matches a query's intent or information need.
- text analyzerA text-processing component that converts language-specific text into terms suitable for indexing or searching.
- Elasticsearch indexAn Elasticsearch index is a logical collection of searchable documents distributed across shards and replicas.
- cluster nodeA running instance of Elasticsearch that participates in a cluster and performs assigned search, data, or coordination responsibilities.
- aliasAn Elasticsearch index alias is an alternate name that refers to one index or a set of indexes for search and other index operations.
- DocumentAn Elasticsearch document is a JSON record stored in an index with fields and associated metadata.
- keyword fieldA keyword field is an Elasticsearch field type that stores an entire value as a single unanalyzed term for exact matching, sorting, filtering, and aggregations.
- boolean queryA bool query is an Elasticsearch query that combines other queries through Boolean clauses to express compound search criteria.
- document idA document ID is the identifier assigned to an Elasticsearch document for addressing and retrieval.
- text analysisText analysis is the processing of text into analyzed linguistic representations to support meaning-aware search and retrieval.
- standard analyzerElasticsearch's built-in text analyzer that applies standard tokenization and related default text processing.
- search engineA search engine is software that retrieves relevant information from indexed data in response to queries.
- automatic index creationAutomatic index creation is Elasticsearch behavior that creates a missing index when an indexing request targets it.
- inverted indexAn inverted index is an index that maps each token or term to the documents containing it.
- unstructured dataUnstructured data is data that does not conform to a fixed field-based or tabular schema, such as free-form text.
- action.auto_create_indexaction.auto_create_index is an Elasticsearch setting that controls whether missing indexes may be created automatically.
- compound queryA compound query is an Elasticsearch query that combines multiple individual queries to express complex search logic.
- master nodeThe master role is the Elasticsearch node responsibility for participating in cluster-state management and cluster-management decisions.
- similarity scoringA similarity algorithm computes how closely a document matches a query to support relevance scoring.
- master-eligible nodeA master-eligible node is an Elasticsearch node assigned the master role and therefore able to vote in master elections and become the elected master.
- dynamic mappingDynamic mapping is Elasticsearch behavior that automatically derives an index mapping from the fields and values of newly indexed documents.
- snapshot repositoryA snapshot repository is a storage location that contains Elasticsearch snapshot data for backup and restoration.
- index rolloverIndex rollover is the replacement of a current Elasticsearch index with a new index while directing subsequent writes to the new index without copying existing documents.
- _search APIThe Elasticsearch HTTP endpoint for submitting search requests and retrieving matching documents or aggregation results.
- scriptAn executable expression or program embedded in an Elasticsearch request to apply conditional or computed document changes.
- request messageThe POST method is an HTTP request method used to submit data to a server for processing or resource creation.
- cluster health statusAn Elasticsearch cluster health status is a traffic-light state indicating whether the cluster's primary and replica shards are assigned and available.
- node roleA node role is a configured responsibility assigned to an Elasticsearch node, such as eligibility for master election.
- shard sizingShard sizing is the process of selecting shard capacity and count based on data volume, growth, and node resources.
- match queryA match query is an Elasticsearch query clause that analyzes supplied text and matches documents containing corresponding terms.
- node.rolesnode.roles is an Elasticsearch configuration setting containing the list of roles assigned to a node.
- update APIThe Elasticsearch Update API partially modifies an existing document and can optionally create it through upsert behavior.
- KibanaKibana is a web interface for querying Elasticsearch data and creating visualizations, dashboards, and aggregations.
- multidocument APIAn Elasticsearch API that retrieves multiple documents by their indexes and document IDs in one request.
- _create APIThe Elasticsearch _create API creates a document only when the specified document ID does not already exist.
- metric aggregationA single-value metric aggregation computes exactly one numeric value from a set of input documents.
- BM25Okapi BM25 is a probabilistic information-retrieval ranking algorithm that scores documents using term frequency, document frequency, and document-length normalization.
- CRUDCRUD is the set of operations for creating, reading, updating, and deleting stored resources.
- data typeA data type is a mapping specification that determines how a document field's values are represented, indexed, and queried in Elasticsearch.
- text fieldA text field stores analyzed textual content for full-text search.
- inverse document frequencyInverse document frequency measures how uncommon a term is across a document collection, giving rarer terms greater weight.
- term frequencyTerm frequency is the count or normalized frequency of a term's occurrences within a document or field.
- reindexingThe Elasticsearch Reindex API copies documents from a source index to a destination index, optionally applying transformations during the operation.
- schemaA schema is a formal specification of the structure, fields, types, and constraints that data must follow.
- bucket aggregationA bucket aggregation groups matching Elasticsearch documents into buckets according to specified criteria rather than computing a single metric across all documents.
- Bulk APIThe Elasticsearch _bulk API accepts multiple document indexing, update, or deletion actions in a single request.
- index lifecycle managementIndex lifecycle management is Elasticsearch functionality that automates index phases and actions based on conditions such as age, size, or document count.
- tokenizerA tokenizer is a text-analysis component that divides a character stream into discrete tokens according to specified rules.
- character filterA character filter preprocesses a character stream by removing, replacing, or adding characters before tokenization.
- _doc endpointThe _doc endpoint is an Elasticsearch document endpoint used to address, create, or replace a document within an index.
- structured dataStructured data is information organized according to a predefined schema or consistent fields and types.
- token filterA token filter is a text-analysis component that transforms, removes, or adds tokens after tokenization.
- single-node clusterA single-node cluster is an Elasticsearch cluster containing one node.
- query_string queryThe query_string query is an Elasticsearch Query DSL clause that parses a query-string expression using a strict query syntax.
- dynamic index settingA dynamic index setting is an Elasticsearch index configuration value that can be changed while the index is operational.
- standard tokenizerA standard tokenizer is a built-in Lucene text-analysis component that divides text into tokens according to predefined standard rules.
- lifecycle policyAn Elasticsearch lifecycle policy is a set of rules that controls automatic index management, lifecycle phases, transitions, and actions.
- refreshA refresh is an Elasticsearch and Lucene operation that makes buffered indexed documents searchable by creating and exposing new index segments.
- stemmingA stemmer is a language-specific text-processing component that reduces related word forms to a root word.
- boostBoosting is the technique of increasing the importance of selected query fields so matching documents receive higher relevance scores.
- _sourceThe Elasticsearch _source field contains the original JSON document stored with a search or retrieval response.
- must_not clauseA Boolean query clause in Elasticsearch that excludes documents matching its inner query.
- histogramA histogram aggregation creates buckets that represent consecutive intervals of a numerical value across documents.
- leaf queryA leaf query is an individual Elasticsearch query that evaluates document fields or values and can serve as a component of a compound query.
- segmentA Lucene index segment is a self-contained, effectively immutable structure containing indexed documents, terms, and inverted-index data.
- multi-typed fieldA multi-field is an Elasticsearch mapping definition that indexes one field value in multiple ways under separate subfields.
- primary shardA primary shard is a shard that holds the authoritative documents for part of an Elasticsearch index.
- static index settingA static index setting is an Elasticsearch index configuration value that can be set at index creation but cannot be changed while the index is operational.
- custom analyzerAn Elasticsearch analyzer assembled with user-selected character filters, tokenizer, and token filters.
- tokenizationTokenization is the process of splitting a character stream into discrete tokens according to rules such as whitespace, delimiters, or character patterns.
- vertical scalingVertical scaling increases system capacity by increasing the resources of existing machines, such as memory or CPU capacity.
- quorumA quorum is the minimum number of eligible participants whose acknowledgments are required to authorize an operation in a distributed system.
- must clauseA Boolean query clause in Elasticsearch that requires documents to match its inner query.
- horizontal scalingHorizontal scaling increases system capacity by adding more nodes or machines rather than increasing the resources of an existing node.
- snapshotA snapshot is a point-in-time backup of Elasticsearch index data and cluster state that can be restored later.
- text data typeThe text data type is an Elasticsearch mapping type for analyzed textual content used in full-text search.
- schema-less featureA schema-free feature permits data to be indexed without an explicitly defined schema.
- field-length norm algorithmA field-length norm is a document-scoring factor that adjusts term relevance according to the length of the field containing the term.
- term frequency-inverse document frequencyA term frequency–inverse document frequency algorithm ranks documents using query-term frequency in documents and term rarity across the collection.
- _slm APIThe _slm API is Elasticsearch's interface for creating, managing, and executing snapshot lifecycle policies.
- range queryA query that retrieves documents whose field values fall within specified lower and upper bounds.
- stop wordA frequently occurring word that is commonly excluded or specially handled during text analysis because it contributes little to retrieval discrimination.
- filter contextA filter context is an Elasticsearch query context in which matching determines inclusion without calculating relevance scores.
- wildcardA wildcard is a pattern symbol representing one or more variable characters when selecting index names or matching terms.
- function score queryA function score query is an Elasticsearch compound query that modifies the relevance scores of matching documents with one or more scoring functions.
- hot phaseA hot phase is an index lifecycle stage in which an index remains actively available for normal operations before later lifecycle actions occur.
- refresh intervalA refresh interval is the configured time between automatic refresh operations that make newly indexed documents searchable.
- constant_score queryAn Elasticsearch scoring mode that assigns the same score to every document matching a query.
- URI requestAn Elasticsearch search request that expresses query parameters in the request URI rather than in a Query DSL request body.
- ids queryAn ids query is an Elasticsearch query that selects documents whose identifiers match a specified set of IDs.
- geo_shape queryAn Elasticsearch geo_shape query matches documents whose indexed geographic shapes have a specified spatial relationship to a query shape.
- object data typeThe Elasticsearch object data type represents an inner JSON object whose properties are mapped as fields within a document.
- match_all queryA match_all query is an Elasticsearch query that matches every document eligible for the search.
- percolate queryAn Elasticsearch percolate query matches stored queries against a supplied document.
- pipeline aggregationA pipeline aggregation computes results from the output of other aggregations.
- filter clauseA filter clause is an Elasticsearch bool-query clause that restricts matching documents without affecting relevance scores.
- index settingA configuration property that controls operational characteristics of an Elasticsearch index, including its shards and replicas.
- geo_bounding_box queryA geo_bounding_box query retrieves documents whose geographic points or shapes intersect a rectangular geographic boundary.
- _cluster/settings endpointThe _cluster/settings endpoint is an Elasticsearch API endpoint for retrieving and modifying cluster-level settings.
- geo_point data typeA geographic coordinate represented by a latitude and longitude pair.
- fuzzy queryA fuzzy query is an Elasticsearch query that matches terms within a permitted edit distance of the supplied term.
- information retrievalSearching textual content using tokenization, matching, relevance scoring, or related linguistic analysis.
- mapping apiA mapping API is an Elasticsearch API for defining how index fields are mapped and analyzed.
- match_phrase queryA match_phrase query is an Elasticsearch query that finds documents containing a sequence of terms in the specified order.
- distance_feature queryAn Elasticsearch query that increases the relevance scores of documents whose date or geographic-point values are closer to a specified origin within a specified pivot distance.
- scripted updateA scripted update is a document modification whose changes are computed by an executable script and may depend on conditions.
- document typeA document type is a legacy Elasticsearch classification for documents sharing a data shape within an index.
- typeless endpointA typeless endpoint is an Elasticsearch URL that addresses documents without including a legacy document type.
- max token lengthA tokenizer configuration setting that specifies the maximum number of characters permitted in a token before it is split.
- geo_distance queryA geo_distance query retrieves documents whose geo-point or geo-shape values lie within a specified distance of a geographic point.
- settings endpointAn Elasticsearch endpoint for reading and changing index settings.
- multi_match queryA multi_match query is an Elasticsearch full-text query that searches for analyzed terms across multiple specified fields.
- date histogram aggregationA date histogram aggregation groups documents into time-based buckets according to a date interval.
- token_count data typeThe token_count data type is an Elasticsearch mapping type that stores the number of tokens produced for a field.
- disjunction max queryA disjunction max query is an Elasticsearch compound query that returns documents matching one or more subqueries and uses the highest matching score, optionally adjusted by a tie-break contribution.
- ELK stackThe Elastic Stack is a collection of data collection, processing, search, analytics, and visualization products that includes Beats, Logstash, Elasticsearch, and Kibana.
- full-text search engineA full-text search library is a software library that indexes and searches natural-language text.
- cluster allocation APICluster allocation is Elasticsearch functionality for inspecting and controlling the assignment of shards to nodes.
- split-brainA split-brain scenario is a distributed-system failure in which isolated node groups independently believe they are the authoritative cluster.
- query contextA query context is an Elasticsearch execution mode that evaluates whether documents match and how well they match, producing relevance scores.
- cluster stateCluster state is the distributed metadata maintained by Elasticsearch about cluster-wide resources, including shards, replicas, schemas, mappings, and fields.
- boosting queryA boosting query is an Elasticsearch compound query that promotes documents matching a positive query and optionally demotes documents matching a negative query by adjusting their relevance scores.
- well-known textWKT, or Well-Known Text, is a text format for representing geometric objects and their coordinates.
- logical AND operatorAn AND operator is a Boolean query operator that requires all joined terms to match.
- ctx context variableThe ctx context variable exposes the current document and update context to an Elasticsearch update script.
- PainlessPainless is Elasticsearch's scripting language for safely executing scripts within the platform.
- script parametersScript parameters are named values supplied separately from script source and made available to the script at execution time.
- edit distanceThe Levenshtein distance algorithm computes the minimum number of insertions, deletions, and substitutions needed to transform one string into another.
- stop-word removalA token filter that removes configured stop words from analyzed text.
- delete phaseA delete phase is an index lifecycle stage in which an index is removed after preceding lifecycle phases complete.
- fields objectThe fields object is a mapping configuration object that defines additional data-type representations for a field.
- configurationA configuration is a set of settings that controls the behavior and operation of a software system.
- date fieldA field that stores values interpreted as dates or times.
- fuzzinessFuzziness is a search setting that controls the permitted edit distance between a query term and matching indexed terms.
- date formatA date format specifies the textual or numeric representation that Elasticsearch accepts and interprets as a date.
- indexing apiThe Elasticsearch Index API adds or updates a document in an index.
- shard assignmentA shard assignment is the placement of an Elasticsearch shard on a cluster node.
- Dev ToolsDev Tools is Kibana's interface for entering and executing Elasticsearch requests and inspecting their results.
- schema-less structureSchemaless describes a data system that can accept documents without requiring a complete schema to be defined beforehand.
- time seriesTime-series data consists of observations associated with timestamps or time intervals, usually ordered chronologically.
- html_strip character filterThe html_strip character filter removes HTML markup from an input character stream before tokenization, optionally preserving specified tags.
- advanced searchAdvanced search provides rich results by interpreting query context and semantics and producing summaries, visualizations, or synthesized information.
- ChatGPTChatGPT is a conversational artificial-intelligence system that generates human-like text in response to user prompts.
- GPT-4GPT-4 is a generative pretrained transformer language model developed by OpenAI.
- GPT modelA generative pretrained transformer is a transformer-based neural-network architecture pretrained to generate or understand text.
- intuitive searchIntuitive search is search that accepts conversational natural-language queries and interprets their context and intent.
- personalized searchPersonalized search adapts results to an individual user's preferences, behavior, history, or context.
- _mount APIThe _mount API is an Elasticsearch interface for mounting snapshots so their contents can be searched.
- retention policyA snapshot retention policy specifies the conditions and duration governing how long snapshots remain available.
- searchable snapshotA searchable snapshot is a snapshot that can be mounted and queried as indexed data without first being fully restored.
- snapshot lifecycle policyA snapshot lifecycle policy is a configuration that specifies how Elasticsearch schedules, creates, and retains snapshots.
- fielddataFielddata is Elasticsearch’s on-heap data structure for loading text-field values to support operations such as sorting and aggregations.
- span queryA span query is an Elasticsearch positional query clause that matches terms according to their order and proximity in analyzed text.
- index configurationAn index configuration is the collection of mappings, settings, and aliases associated with an Elasticsearch index.
- sibling aggregationA sibling pipeline aggregation is a pipeline aggregation declared at the same level as the aggregation whose buckets it processes.
- synonymA synonym is an alternative word or phrase treated as semantically equivalent to another word for search or text processing.
- _rollover APIThe _rollover API is an Elasticsearch API that creates a successor index and repoints an alias to it according to rollover rules.
- calendar intervalA calendar interval is a date histogram interval interpreted according to calendar units and calendar-aware date adjustments.
- fixed intervalA fixed interval is a date histogram interval represented by a constant number of time units without calendar-aware month or year semantics.
- network.porthttp.port is an Elasticsearch configuration property that specifies the port used for HTTP client communication.
- transport.porttransport.port is an Elasticsearch configuration property that specifies the port used for inter-node transport communication.
- minimum match thresholdThe minimum_should_match setting specifies the minimum number of optional query clauses or terms that must match for a document to qualify.
- component templateA component template is a reusable Elasticsearch template fragment that can be associated with multiple composable index templates.
- percolator field typeThe percolator field type stores and indexes Elasticsearch queries so they can later be matched against documents.
- percolator indexA percolator index is an Elasticsearch index that stores queries for later matching against documents through percolation.
- analyze APIThe Elasticsearch analyze API analyzes supplied text and returns the terms and intermediate results produced by an analyzer.
- geo_shape data typeThe Elasticsearch geo_shape field type indexes geographic shapes such as points, lines, and polygons.
- LuceneApache Lucene is an open-source Java library for information retrieval and full-text search.
- zero downtimeZero downtime is continuous service availability during an operational change without application interruption.
- parent pipeline aggregationA parent pipeline aggregation operates on child aggregation output and adds results to existing buckets.
- unassigned shardAn unassigned shard is a shard that has not been allocated to an Elasticsearch node.
- search_as_you_type data typeThe Elasticsearch search_as_you_type field type indexes text and generated subfields to support autocomplete-style matching as text is entered.
- master electionA master election is the distributed coordination process of selecting a new Elasticsearch master node when the current master is unavailable.
- edge n-gram indexingAn edge n-gram is an n-gram anchored at the beginning of a token.
- n-gramAn n-gram is a contiguous sequence of a specified number of characters or words derived from text.
- jvm.optionsAn Elasticsearch configuration file containing options for the Java Virtual Machine, including heap-memory settings.
- wildcard queryAn Elasticsearch wildcard query is a term-level query that matches indexed terms using wildcard characters.
- high-disk watermarkAn Elasticsearch threshold on available disk space that controls shard allocation and signals storage pressure.
- georectangleA georectangle is a rectangular geographic boundary defined by the coordinates of its top-left and bottom-right corners.
- nested data typeThe Elasticsearch nested field type indexes each object in an array independently while preserving relationships among that object's fields.
- index splittingIndex splitting is the Elasticsearch operation of creating a new index with more primary shards and copying data from an existing index into it.
- _snapshot APIThe _snapshot API is an Elasticsearch REST API for creating, managing, and restoring snapshots in snapshot repositories.
- _update_by_queryThe _update_by_query API operation finds documents matching a query and applies updates to them.
- recallIn information retrieval, recall is the proportion of all relevant documents that are retrieved.
- index lifecycle phaseAn index lifecycle phase is a stage in an index lifecycle during which specified actions may be executed according to defined conditions.
- non-text fieldA non-text field stores values as structured, non-tokenized data rather than as analyzed full-text content.
- LogstashLogstash is an open-source data-processing engine that extracts, transforms, enriches, and routes event data between sources and destinations.
- elasticsearch.ymlElasticsearch's YAML configuration file for cluster, node, path, network, and security settings.
- document countdoc_count is the Elasticsearch aggregation response property containing the number of documents in a bucket.
- join data typeThe join data type is an Elasticsearch field type that represents parent-child relationships between documents in the same index.
- geospatial queryGeospatial search retrieves data according to geographic locations, shapes, distances, or spatial relationships.
- boost factorA numeric multiplier that increases the contribution of a field to a document's relevance score.
- keyword queryA search query is a request that evaluates query criteria against indexed documents to retrieve matching results.
- text highlightingHighlighting is the presentation of matching portions of returned text with markup or visual emphasis.
- explain flagAn Elasticsearch search request option that causes the response to include details about how a document's relevance score was derived.
- index shrinkingIndex shrinking is the Elasticsearch operation that creates a new index with fewer shards than a source index while preserving its documents.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.
