【发布时间】:2017-09-13 18:34:49
【问题描述】:
我有一个地址保存在 elasticsearch 文档中,格式为:
"address": {
"streetAddress": "123 Fake street",
"city": "San Francisco",
"region": "California",
"postalCode": "94111",
"country": "United States"
},
如何使用可能包含每个不同字段的数据的输入字符串来搜索索引。例如,用户可以搜索“123 Fake street, San Francisco” - 带或不带逗号。
对搜索字符串进行标记,然后针对问题中的每个字段搜索每个单词是否有意义?或者以某种方式将所有 5 个字段连接到一个单独的地址字段并搜索?目前我们使用大小为 2 - 12 的 ngram。
我在这里问了一个关于电话号码的问题,我将所有电话号码元素连接到一个新字段中: Searching phone number object in Elasticsearch with C#
但地址情况在用户如何搜索文件方面有所不同。
【问题讨论】:
-
你看过 _all 字段了吗? elastic.co/guide/en/elasticsearch/reference/current/…
-
谢谢大卫。这个字段我还没看,让我看看……
-
请注意
_all字段在 Elasticsearch 6.0 中默认被禁用,您将无法在 6.0 索引中创建_all字段。有关详细信息,请参阅elastic.co/guide/en/elasticsearch/reference/6.0/…。 -
我们目前正在升级到 ES 5.1,所以可能 _all 字段不是最佳选择。
标签: c# elasticsearch nest