gpt4 book ai didi

elasticsearch - 如何使用关键字分析器进行搜索?

转载 作者:行者123 更新时间:2023-12-03 01:06:14 25 4
gpt4 key购买 nike

我将关键字分析器作为默认分析器,如下所示:

{
"settings": {
"index": {
"analysis": {
"analyzer": {
"default": {
"type": "keyword"
}}}}}}

```

但现在我什么都搜索不到。例如:
{
"query": {
"query_string": {
"query": "cast"
}}}

尽管“cast”是索引文档中的一个常见值,但给了我 0 个结果。 ( http://gist.github.com/baelter/b0720a52ee5a27e27d3a)

顺便说一句,搜索“*”可以正常工作。

我的映射中只有明确的默认值:
{
"oceanography_point": {
"_all" : {
"enabled" : true
},
"properties" : {}
}
}

索引的行为就像 _all 中不包含任何字段一样,因为 field:value 查询工作正常。

我是否滥用了关键字分析器?

最佳答案

使用关键字分析器,您只能进行精确的字符串匹配。
让我们假设您使用了关键字分析器并且没有使用过滤器。
在这种情况下,对于索引为 "Cast away in forest"的字符串,搜索 "cast"或 "away"都不起作用。你需要做一个精确的“Cast away in forest”字符串来匹配它。 (假设没有使用小写过滤器,你也需要给出正确的大小写)

更好的方法是使用 multi fields将一份声明为已分析的关键字,另一份声明为正常。
您可以在其中一个字段上搜索并在另一个字段上进行聚合。

关于elasticsearch - 如何使用关键字分析器进行搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28810389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com