Ich habe ein Problem mit elasticsearch. Es gibt ein Item ("'title': 'Python mit Elasticsearch' verwenden") im Index. Ich kann das zurückgegebene Ergebnis nur erhalten, ich suche die genaue Abfrage. Wenn ich jedoch den "'title': 'Python with'" suche, kann der Code nichts treffen.
Die es-Version ist: {u'cluster_name ': u'elasticsearch', u'tagline ': du weißt, für die Suche', u'version ': {u'lucene_version': u'5.4.1 ', u'build_hash ': u'd045fc29d1932bce18b2e65ab8b297fbf6cd41a1', u'number ': u'2.2.1', u'build_timestamp ': u'2016-03-09T09: 38: 54Z', u'build_snapshot ': Falsch}, u' Name ': u'Lorelei Travis'}
Wenn ich richtig bin, sollte es 2.2.1 sein. Der Code ist angehängt. Also, wie bekomme ich den Treffer, wenn ich mit der Abfrage wie "Python mit verwenden" suche, ohne eine exakte Match-Abfrage. Vielen Dank!Wie bekomme ich einen Treffer ohne genaue Übereinstimmung mit es 2.X? (Python elasticsearch)
INDEX_NAME = 'test_11'
from elasticsearch import Elasticsearch
es = Elasticsearch()
print es.info()
request_body = {
"mappings":{
"post":{
"properties":{
"title":{
"type":"string",
"index":"analyzed"
}
}
}
}
}
if es.indices.exists(INDEX_NAME):
res = es.indices.delete(index = INDEX_NAME)
print(" response: '%s'" % (res))
res = es.indices.create(index = INDEX_NAME, body=request_body)
print res
es.index(index=INDEX_NAME, doc_type='post', id=1, body={
'title': 'Using Python with Elasticsearch'
}
)
es.indices.refresh(index=INDEX_NAME)
res = es.search(index=INDEX_NAME, body={'query': {'match': {'title': 'Using Python with Elasticsearch'}}})
#res = es.search(index=INDEX_NAME, body ={"query":{"match":{"title":"Using Python with"}}})
print '\n'
res = es.indices.get(index=INDEX_NAME)
print res
Ich weiß, Fuzzy-Abfrage kann diese Funktion erreichen. Aber ich möchte Volltextsuche erreichen. Vielen Dank ! – chocolate9624
Ich habe meine Antwort bearbeitet, um ein Beispiel zu geben. – rtkaleta
Danke! Es klappt! Aber ich möchte Volltextsuche erreichen. Mit der Abfrage "Python with Elasticsearch" kann es nichts treffen. – chocolate9624