english
我有一个名称字段,该字段使用包含零件名称的分析器进行索引(也尝试了标准分析器)。
我的问题是我的一些标题包含标点符号,有些则没有。此外,我的一些查询包含标点符号,而有些则没有。
例如,我的标题为“CenterG 5.2 Drive Belt for model number 4425”。我的查询可能如下所示:“Centerg 5.2 皮带”,如果是这样,那么我的结果将正确显示,顶部显示“CenterG 5.2 Drive Belt for model number 4425”。
但是,如果我的查询不包含标点符号,则该产品不会显示在结果中。对于不包含标点符号的标题和包含的查询,我也有同样的问题。我不确定这应该如何处理。我尝试使用standard
我理解无视标点符号的分析器,但这并没有改善结果。它们大致相同。
因此,当我搜索“CenterG 5.2 Belt”或“centerg 52 Belt”时,我希望产品“CenterG 5.2 Drive belt for model number 4425”显示在我的结果顶部。
这是我的映射:
{:properties=>{:name=>{:type=>"text", :analyzer=>"english"}}
我也尝试过利用没有解决这个问题的 ngram 分析器。
这是我的查询:
{
query: {
bool: {
should:
{
multi_match:{
fields: ["name"],
query: "#{query}"
}
}
}
}
}