elasticsearch,pyspark,morelikethis,Python,elasticsearch,Pyspark,Morelikethis" /> elasticsearch,pyspark,morelikethis,Python,elasticsearch,Pyspark,Morelikethis" />

Python 更像ElasticSearch中的查询

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

我正在尝试对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 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查询