我有这样的映射:
{
"doc": {
"mappings": {
"mydocument": {
"properties": {
"file": {
"type": "attachment",
"path": "full",
"fields": {
"file": {
"type": "string",
"store": true,
"term_vector": "with_positions_offsets"
},
"author": {
...
当我搜索一个完整的单词时,我得到的结果是:
"query": {
"fuzzy_like_this" : {
"fields" : ["file"],
"like_text" : "This_is_something_I_want_to_search_for",
"max_query_terms" : 12
}
},
"highlight" : {
"number_of_fragments" : 3,
"fragment_size" : 650,
"fields" : {
"file" : { }
}
}
但是,如果将搜索词更改为
"This_is_something_I_want"
,我什么也没得到。我想念什么?
最佳答案
要实现部分匹配,我们必须首先了解fuzzy like this
的功能,然后决定要返回部分匹配的内容。 fuzzy like this
将执行2个关键功能。
like_text
。然后,所有产生的 token 将用于根据词频或tf-idf
这通常意味着输入项将在空间上分割并小写。因此,
This_is_something_I_want
将标记为this_is_something_i_want
。除非您拥有带有确切术语的文件,否则没有文件匹配。fuzzified
。模糊搜索根据一个单词要匹配另一个单词需要进行多少次字符更改来对术语评分。例如,要从bat
转换为hat
,我们将需要更改1个字符。 对于从
this_is_something_i_want
到this_is_something_i_want_to_search_for
的情况,我们将需要进行14个字符的更改(添加_to_search_for
。)当使用超过5或6个字符的术语时,标准模糊搜索仅允许进行3个字符的更改。但是,将模糊限制提高到14会产生严重的偏差结果因此,这些功能都无法帮助您找到想要的结果。
这是我的建议:
['this', 'is', 'something', 'i', 'want']
,可以正确匹配到示例案例phrase prefix
查询代替fuzzy like this
。文档here 关于nest - 附件上的此类模糊词在部分单词上不返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32082971/