我想在elasticsearch中执行搜索,而忽略tf- idf搜索中的字段范数。您可以通过设置索引映射来忽略字段规范来完成此操作。但是,这似乎是通过更改索引来完成的,我只想修改搜索(我需要其他类型搜索的规范)。做到这一点的最佳方法是什么?我正在使用elasticsearch.js作为Elasticsearch的接口。
您不能基于每个搜索禁用规范,但是可以使用Multi Fields API在禁用规范的情况下添加其他字段。
PUT /my_index { "mappings": { "my_type": { "properties": { "my_field": { "type": "string", "fields": { "no_norms": { "type": "string", "norms": { "enabled": false } } } } } } } }
现在,您可以搜索my_field是否需要规范,是否需要规范my_field.no_norms。您必须重新索引数据,以便新字段可用于所有文档,只是将其添加到映射中不会更改退出文档的任何内容。
my_field
my_field.no_norms