term
usage
Regardez d'abord la définition du terme, terme nom correspondance exacte, qui est la dernière requête, les termes de recherche ne sera pas démontée avant la recherche de mots.
On décrira ici à titre d'exemple, pour stocker certaines données:
{ "Title": " l' amour de la Chine" , "content": " Les gens aiment bien la Chine" , "tags": [ " La Chine", "amour" ] } { "title": "amour HuBei" , "content": " les gens aiment très « HuBei , "tags": [ "HuBei", "amour" ] }
Pour utiliser term
la requête suivante:
{ "Requête" : { "terme" : { "title": "amour" } } }
En conséquence, les deux données ci-dessus peuvent être demandées:
{ "A": 1 , "timed_out": faux , "_Les éclats" : { "total": 5 , " avec succès": 5 , "sauté": 0 , " a échoué": 0 }, "hits" : { « totale « 2 , "max_score": 0,6931472 , "hits" : [ { "_index": "test" , "_type": "doc" , "_id": "8" , "_SCORE": 0,6931472 , "_Source" : { "title": "amour HuBei" , "content": " Les gens aiment très HuBei" , "tags": [ "HuBei", "amour" ] } }, { "_index": "test" , "_type": "doc" , "_id": « 7 " "_SCORE": 0.6931472 , "_Source" : { "title": " l' amour de la Chine" , "content": " les gens aiment bien la Chine" , "tags": [" La Chine », "amour"] } } ] } }
Découverte, mots - clés de titre liés à l' amour dans tout vérifié, mais je veux juste une correspondance exacte love China
cela, voir si vous pouvez consulter le texte suivant:
{ "Requête" : { "terme" : { "title": " l' amour de la Chine" } } }
Exécution n'a été trouvé aucune donnée , Conceptuellement, terme appartient à une correspondance exacte ne peut vérifier un seul mot. Je voudrais terme correspondre à plusieurs mots , comment faire? Peut être utilisé terms
pour:
{ "Requête" : { "termes" : { "title": [ "amour", " La Chine" ] } } }
Résultats de la requête:
{ "A": 1 , "timed_out": faux , "_Les éclats" : { "total": 5 , " avec succès": 5 , "sauté": 0 , " a échoué": 0 }, "hits" : { « totale « 2 , "max_score": 0,6931472 , "hits" : [ { "_index": "test" , "_type": "doc" , "_id": "8" , "_SCORE": 0,6931472 , "_Source" : { "title": "amour HuBei" , "content": " Les gens aiment très HuBei" , "tags": [ "HuBei", "amour" ] } }, { "_index": "test" , "_type": "doc" , "_id": « 7 " "_SCORE": 0.6931472 , "_Source" : { "title": " l' amour de la Chine" , "content": " les gens aiment bien la Chine" , "tags": [" La Chine », "amour"] } } ] } }
Toutes les enquêtes ont découvert, et pourquoi? Car en termes de [ ]
plus ou d'une relation est, aussi longtemps que l' un mot là - dessus. Voulez - vous rencontrer un préavis de deux mots, vous devez utiliser le bool doit faire, comme suit:
{ "Requête" : { "bool" : { "must" : [ { "terme" : { "title": "amour" } }, { "terme" : { "title": "Chine" } } ] } } }
china
est en minuscule. Lors de l' utilisation des majuscules
China
lorsque nous avons cherché et trouvé aucune information trouvée. C'est pourquoi? Lorsque le titre de mot au cours du stockage, a mené un processus de segmentation. Nous utilisons ici est le mot par défaut du processeur , un traitement de texte. Nous pouvons voir comment le traitement de texte?
traitement de texte
Test GET / _analyze { "texte": " l' amour de la Chine" }
Les résultats sont les suivants:
{ "Jetons" : [ { "jeton": "amour" , "start_offset": 0 , "end_offset": 4 , "type": "<ALPHANUM>" , "position": 0 }, { "jeton": " chine » , "start_offset": 5 , "end_offset": 10 , "type": "<ALPHANUM>" , "position": 1 } ] }
Pour l' analyse love
et china
les deux mots. Le term
seul compte complet du mot correspondant ci - dessus, ne correspond pas à tout changement. Nous utilisons Donc de China
telle sorte que lorsque la requête échouera. Plus tard , il y aura un mot consacré breaker.
match
usage
Première utilisation love China
de match.
GET test / doc / _search { "requête" : { "match" : { "title": " l' amour de la Chine" } } }
Le résultat est le suivant:
{ "A": 1 , "timed_out": faux , "_Les éclats" : { "total": 5 , " avec succès": 5 , "sauté": 0 , " a échoué": 0 }, "hits" : { « totale « 2 , "max_score": 1,3862944 , "hits" : [ { "_index": "test" , "_type": "doc" , "_id": "7" , "_SCORE": 1,3862944 , "_Source" : { "title": " l' amour de la Chine" , "content": " Les gens aiment bien la Chine" , "tags" : [ " La Chine" , "amour" ] } }, { "_index": "test" , "_type": "doc" , "_id": « 8 " , "_SCORE": 0.6931472 , "_Source" : { "title": "amour HuBei" , "content": " les gens aiment très HuBei" , "tags" : [ "HuBei" , "amour" ] } } ] } }
Constaté que les deux vérifier, et pourquoi? Parce que le match lors de la recherche, procédera à une scission mot, Chai Wan, correspondant à nouveau au - dessus de deux éléments, leur entrée titre est: love china hubei
nous cherchons love China
notre mot pour obtenir un traitement love china
, et la relation d'appartenance ou tant que l'une des entrées , il sera en mesure d'égaler. Si vous voulez love
et China
en même temps de faire correspondre des mots, comment faire? utilisationmatch_phrase
match_phrase
usage
match_phrase
Appelée phrase recherche, exige que tous les mots doivent figurer dans le document en même temps, doit être proche du même endroit en même temps.
Test GET / doc / _search { "requête" : { "match_phrase" : { "title": " La Chine d'amour" } } }
Les résultats sont les suivants:
{ "A": 5 , "timed_out": faux , "_Les éclats" : { "total": 5 , " avec succès": 5 , "sauté": 0 , " a échoué": 0 }, "hits" : { « totale « : 1 , "max_score": 1,3862944 , "hits" : [ { "_index": "test" , "_type": "doc" , "_id": "7" , "_SCORE": 1,3862944 , "_Source" : { "title": " l' amour de la Chine" , "content": " Les gens aiment bien la Chine" , "tags" : [ " La Chine" , "amour" ] } } ] } }