Python 更像ElasticSearch中的查询
我正在尝试对Amazon产品数据执行基于内容的推荐,数据存储在名为“Amazon_Products”的ElasticSearch索引中 我在ES的python客户机中使用了MLT查询,在尝试时,没有得到任何响应 以下是我的代码:Python 更像ElasticSearch中的查询,python,elasticsearch,pyspark,morelikethis,Python,elasticsearch,Pyspark,Morelikethis,我正在尝试对Amazon产品数据执行基于内容的推荐,数据存储在名为“Amazon_Products”的ElasticSearch索引中 我在ES的python客户机中使用了MLT查询,在尝试时,没有得到任何响应 以下是我的代码: os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages org.elasticsearch:elasticsearch-hadoop:7.7.1 pyspark-shell' from elasticsearch import
os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages org.elasticsearch:elasticsearch-hadoop:7.7.1 pyspark-shell'
from elasticsearch import Elasticsearch
es = Elasticsearch()
from elasticsearch_dsl import Search
from elasticsearch_dsl.query import MoreLikeThis
dsl_search = Search(index='amazon_products').using(es)
input_product = 'Ginger'
content_dsl = dsl_search.query(MoreLikeThis(like= input_product, fields=['brand']))
response = content_dsl.execute()
print(response)
for hit in response:
print(hit)
即使“brand”字段下有“Ginger”,响应也是空的{}。为什么会发生这种情况
在创建了索引amazon_products
并将数据映射到其中之后,我能够执行如下普通搜索查询:
es.search(index="amazon_products", q="main_category:Refrigerators", size=3)
这似乎工作良好,并给出适当的结果
但是,我不明白为什么MLT不能处理我的数据。有人能帮我解决这个问题吗?我该怎么办
我还应该如何在Python中执行MLT查询