当前位置: 首页 > 知识库问答 >
问题:

比如ElasticSearch

桓高澹
2023-03-14
@Document(indexName = "address", createIndex = true)
public class Address {
    @Id
    private String id;

    @Field(type = FieldType.Text )
    private String fullAddress;

    private String regionCode;

    @Field(type = FieldType.Nested, store = true)
    private List<Entry> parts;

    public Address(String fullAddress) {
        this.fullAddress = fullAddress;
    }

    public Address(String fullAddress, List<Entry> entryList) {
        this.fullAddress = fullAddress;
        this.parts = entryList;
    }

    public Address(String fullAddress, List<Entry> entryList, String regionCode) {
        this.fullAddress = fullAddress;
        this.parts = entryList;
        this.regionCode = regionCode;
    }
}
@Repository
public interface AddressElasticRepository extends ElasticsearchRepository<Address, String> {
    @Query("{\"bool\" : {\"must\" : {\"field\" : {\"fullAddress\" : {\"query\" : \"?\",\"analyze_wildcard\" : true}}}}}")
    List<Address> findByFullAddressLike(String fullAddress);
}
{
  "address": {
    "aliases": {},
    "mappings": {
      "properties": {
        "fullAddress": {
          "type": "text"
        },
        "parts": {
          "type": "nested",
          "properties": {
            "aoGuid": {
              "type": "text",
              "fields": {
                "keyword": {
                  "type": "keyword",
                  "ignore_above": 256
                }
              }
            },
            "aoLevel": {
              "type": "integer"
            },
            "aoid": {
              "type": "text",
              "fields": {
                "keyword": {
                  "type": "keyword",
                  "ignore_above": 256
                }
              }
            },
            "code": {
              "type": "text",
              "fields": {
                "keyword": {
                  "type": "keyword",
                  "ignore_above": 256
                }
              }
            },
            "offName": {
              "type": "text",
              "fields": {
                "keyword": {
                  "type": "keyword",
                  "ignore_above": 256
                }
              }
            },
            "parentGuid": {
              "type": "text",
              "fields": {
                "keyword": {
                  "type": "keyword",
                  "ignore_above": 256
                }
              }
            },
            "postalCode": {
              "type": "text",
              "fields": {
                "keyword": {
                  "type": "keyword",
                  "ignore_above": 256
                }
              }
            },
            "shortName": {
              "type": "text",
              "fields": {
                "keyword": {
                  "type": "keyword",
                  "ignore_above": 256
                }
              }
            }
          }
        },
        "regionCode": {
          "type": "integer"
        }
      }
    },
    "settings": {
      "index": {
        "refresh_interval": "1s",
        "number_of_shards": "1",
        "provided_name": "address",
        "creation_date": "1582120325272",
        "store": {
          "type": "fs"
        },
        "number_of_replicas": "1",
        "uuid": "CG3m-SDdT9CqpXXJ2knl4g",
        "version": {
          "created": "7040099"
        }
      }
    }
  }
}

我该怎么做才能使错误消失?

共有1个答案

屠锐
2023-03-14

错误状态

未为[字段]注册[查询]

您的查询不正确(即field不是有效的查询),它应该是

@Query("{\"bool\":{\"must\":{\"query_string\":{\"query\":\"?\",\"default_field\":\"fullAddress\",\"analyze_wildcard\":true}}}}")
 类似资料:
  • 这是mysql查询。如何在ElasticSearch中编写此查询?我使用的是elasticsearch版本0.90.7。

  • 我试图在elasticsearch查询中使用无痛语言来比较小时数。我想问一下这样的问题: 但我有错误: 无法应用 [ 嵌套文档的方案是: (这些值的格式为“2:00”或“18:00”)。 我尝试过使用< code >。日期 或<代码>。value,但它不起作用,因为我的变量只包含小时而不是日期时间。 有人能帮帮我吗:)

  • 问题内容: 以这个为例(摘自Java regexchecker不起作用): 是否用于检查的值是否重要? 我知道有这是颇为相似。但是,很明显,这个问题只针对原始对象,而不是对象包装器;因此,将不适用。 另外,应该以不同于其他的方式对待? 问题答案: 从您的评论看来,您正在寻找使用包装器类的“最佳实践” 。但是实际上 并没有 最佳实践,因为使用此类开始是一个坏主意。使用对象包装的唯一原因是在您绝对 必

  • 问题内容: 我有两个。每个大小为100000。我想比较它们并计算匹配的元素。 这是我的代码: 在这里比较过程要花费很多时间。 如何解决和优化此问题。 问题答案: 您应该使用:返回一个包含collection1中所有元素的集合,这些元素也处于collection2中。

  • 问题内容: 我有一个错误值,当在控制台上打印时会给我 如何将其与特定的错误值进行比较?我试过了,但是没有用: 问题答案: 尝试 或通过实现错误接口来创建自己的错误。

  • 问题内容: 这怎么不出现属性错误?函数对象没有任何比较方法。它以某种方式使用id()吗? 我知道它比较地址,但是如何?拦截__lt , eq__等是一些低级黑客吗? 问题答案: 函数对象没有定义自己的比较或丰富的比较。相反,它们从类型对象继承,这些类型对象根据内存中的对象地址实现丰富的比较。 因此,是的,它像内置的id()函数一样有效地使用地址。 在Python 3中,功能不再可排序。