我有这样的映射:
{
"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"
,我什么也得不到。我错过了什么?
答案 0 :(得分:1)
要实现部分匹配,我们必须首先了解fuzzy like this
做了什么,然后决定要返回部分匹配的内容。 fuzzy like this
将执行两项关键功能。
like_text
。然后,所有生成的标记将用于根据术语频率或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
。)标准模糊搜索仅允许在处理时进行3个字符更改术语长于5或6个字符。然而,将模糊限制增加到14将产生严重偏差的结果
因此,这些功能都不会有助于产生您所寻求的结果。
以下是我的建议: