django - Elasticsearch 查询

标签 django elasticsearch elasticsearch-dsl

我的 Elasticsearch 查询遇到一些问题。我有以下字段,Patientid,Patientfirstname,Patientmidname和Patientlastname。我希望能够在这4个字段之一中输入并获得匹配的结果。到目前为止,仅当我使用Patientid时,查询才有效。如果我输入“哈利”(名字)或中间名/姓氏之类的信息,则不会查询它。单个词条查询适用于每个词条。

q = Q({"bool": { "should": [ {"term":{"patientid":text}}, {"wildcard":{"patientlastname":"*"+text+"*"}}, {"wildcard":{"patientfirstname":"*"+text+"*"}}, {"wildcard":{"patientmidname":"*"+text+"*"}} ]}})

r = Search().query(q)[0:10000]

最佳答案

匹配取决于您的分析仪,我建议仅使用:

Search().query('multi_match', query=text, fields=['patientid', 'patientlastname', 'patientfirstname', 'patientmidname'])

它将跨这些字段进行查询(您可以在[0]中了解type查询的不同multi_match)。

您只需要确保正确分析了所有患者姓名字段即可(有关详细信息,请参见[1])。

0-https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-multi-match-query.html
1-https://www.elastic.co/guide/en/elasticsearch/reference/6.4/analysis.html#_index_time_analysis

关于django - Elasticsearch 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51973157/

相关文章:

python - 如何使用 Elasticsearch-dsl 在 Django 中进行并行测试?

django - 我如何在 Django 中自动填充字段?

python - Django 表单未在生产服务器上呈现 - 使用测试服务器在本地正常工作,并且单元测试在生产服务器上通过

elasticsearch - 在Elasticsearch中使用文本字段进行聚合

elasticsearch - Logstash电子邮件输出插件配置错误?

java - 试图让 Elasticsearch 运行

python - 在ElasticSearch中将模糊和前缀匹配与Span_multi一起使用

Elasticsearch:仅返回突出显示的子字符串/关键字匹配项

python - 为什么 python-django 元素中管理 url 的 css 没有加载?

Python/Django : Associative arrays error