【问题标题】:Elasticsearch and NEST (searching with spaces)Elasticsearch 和 NEST(使用空格搜索)
【发布时间】:2016-02-23 17:42:31
【问题描述】:

我正在搜索空格,但系统失败。有没有可靠的方法使用带有空格和特殊字符的 NEST?

eg partnumbersearch = 'PM BAS C' 如果工作,空格将停止。

代码-

 var searchDataResults = client.Search<RowDef>(s =>    
s.Index("myindex").AllTypes().From(0).Size(10).
Query(q =>   q.Term(p => p.manpartnumber, partnumberSearch) &&q.Term(p => p.shopname, shopSearch)));

【问题讨论】:

  • %20 在 curl 中为空间工作,但在 .NET 中失败。
  • var searchDataResults = client.Search(s => s.Index("myindex").AllTypes().From(0).Size(10).Query(q => q .Match(m=>m.OnField(p=>p.manpartnumber).Query(partnumberSearch))));这可行,但如何为多字段编码?
  • “系统故障”是什么意思?
  • 搜索无法正常工作,这与 Nest 的理解方式有关。我认为这都与多映射有关,我认为 PM BAS 字段不是一个字段,而是两个字段。结果只是不一致。需要的是一种搜索字段的方法,例如 PM BAS 或 PM 1/2 或 PM_BAS - 空间,;/ 等等都会导致问题。

标签: elasticsearch nest


【解决方案1】:

我终于通过构建一个十六进制密钥来回答这个问题。 Elastissearch 对特殊字符有某种映射。我通过将字符串转换为十六进制并存储它们然后搜索字符串来解决这个问题。这是一种解决方法,但有效。我找不到任何适当的文件来解释如何处理特殊字符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    • 1970-01-01
    • 2019-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多