mongodbデータベースでフルテキスト検索をElastic Searchエンジンで実行しようとしていますが、問題が発生しました。またはquery2)、エンジンは常に同じ結果を返します。私は問題は私が要求をする方法にあると思うが、私はそれを解決する方法を知らない。PythonでElasticSearchを照会するリクエストがうまく機能しない
def search(search_term):
query1 = {
"fuzzy" : {
"art_text" : {
"value" : search_term,
"boost" : 1.0,
"min_similarity" : 0.5,
"prefix_length" : 0
}
},
"filter": {
"range" : {
"published": {
"from" : "20130409T000000",
"to": "20130410T235959"
}
}
}
}
query2 = {
"match_phrase": { "art_text": search_term }
}
es_query = json.dumps(query1)
uri = 'http://localhost:9200/newsidx/_search'
r = requests.get(uri, params=es_query)
results = json.loads(r.text)
data = [res['_source']['api_id'] for res in results['hits']['hits'] ]
print "results: %d" % len(data)
pprint(data)
だけ...あなたの「ファジー」句は「クエリ」内にラップする必要がないすぐにこれをeyeballing?構造体は "クエリ"になります:{"ファジー":{...}}、 "フィルタ":{...}。リクエストから得られた結果を投稿することができますので、わかりやすいものがあるかどうか試してみることができます。 – Phil
私が提供しているsearch_termに関係なく、リクエストは10個のアイテムを返します。私が間違っていることはわかりません。 – Rod0n
データが実際に返されますか?書類は有効な書類なのですか?あなたは、ドキュメントタイプと検索パラメータをすべて1つに指定する単純なURI検索を試しましたか?たとえば、curl -XGET 'http:// localhost:9200/newsidx/some_type/_search?q = art_text:hello'です。または、art_textフィールドではないタグを検索するものです。ちょうどあなたが物事を狭めるのを助けることを試みている – Phil