A *term* in a purely technical sense is an entry in the inverted index.
Technically it is a very low-level entity.

For example, if you tokenized and analyzed doc1: "Dougie Turnbull" using
the English analyzer (which stems words to root forms, lowercases, etc),
you'd get an inverted index that looks somethinglike:

doug
     document: 1
       position 0
       freq 1
turnbul
     document: 1
       position 1
       freq 1

A "term query" therefore directly accesses terms. Its a bit of a low-level
concern. You'd have to query "doug" directly even though the original text
said "dougie".

However, loosely people use the word "search term" to mean words people
enter into a search bar.

"string" is a concept that just reflects the text being analyzed. IE
"Dougie Turnbull". This type is at the Elasticsearch level, and is a peer
for integer, floats, doubles etc. This type dicates how Elasticsearch
understands the value passed from the client and converts it to the
inverted index structure above. A string type will be analyzed, picked
apart into terms, etc based on the associated analyzer. Other types like
numeric types have other low-level magic that helps convert them to the
inverted index data structure.

Hope that helps,
-Doug


On Thu, Apr 23, 2015 at 10:42 AM, Jason Wee <peich...@gmail.com> wrote:

> Can anybody explain what is the different between term and string in
> elasticsearch context?
>
> When we index using default mapping (
> http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html),
> the default type is string.
>
> But when we query, we use the word term (
> http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-term-query.html)
> instead of string?
>
> I google lucene documentation, the term is define as
>
> A query is broken up into terms and operators. There are two types of
> terms: Single Terms and Phrases. A Single Term is a single word such as
> "test" or "hello". A Phrase is a group of words surrounded by double
> quotes such as "hello dolly".
>
> but it has no mentioned on string.
>
>
> https://lucene.apache.org/core/4_10_3/queryparser/org/apache/lucene/queryparser/classic/package-summary.html#package_description
>
> Thank you.
>
> Jason
>
> --
> You received this message because you are subscribed to the Google Groups
> "elasticsearch" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to elasticsearch+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/elasticsearch/df898132-f7f8-4476-8a81-21e3891dfb1a%40googlegroups.com
> <https://groups.google.com/d/msgid/elasticsearch/df898132-f7f8-4476-8a81-21e3891dfb1a%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>



-- 
*Doug Turnbull **| *Search Relevance Consultant | OpenSource Connections,
LLC | 240.476.9983 | http://www.opensourceconnections.com
Author: Taming Search <http://manning.com/turnbull> from Manning
Publications
This e-mail and all contents, including attachments, is considered to be
Company Confidential unless explicitly stated otherwise, regardless
of whether attachments are marked as such.

-- 
You received this message because you are subscribed to the Google Groups 
"elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elasticsearch+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/CALG6HL8RtomqZ3tWxB%2BEN2q_JHZmppGwzVw0HfPWJjTmzVNXCw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to