簡體   English   中英

如何在 AWS Cloudsearch 中執行包含符號的結構化查詢

[英]How to execute a structured query containing symbols in AWS Cloudsearch

我正在嘗試在 Cloudsearch 中執行結構化前綴查詢。

這是查詢參數的片段( csattribute是文本類型)

{
    "query": "(prefix field=csattribute '12-3')",
    "queryParser": "structured",
    "size": 5
}

我上面的查詢將導致No matches for "(prefix field=csattribute '12-3')"


但是,如果我將查詢更改為

{
    "query": "(prefix field=csattribute '12')",
    "queryParser": "structured",
    "size": 5
}

然后我會得到一個我期望的結果列表。


我在簡短的谷歌搜索中沒有找到太多東西。 如何在查詢中包含- 需要逃避嗎? 還有其他需要轉義的字符嗎?

我通過這個 SO 問題指出了正確的方向: 如何搜索特殊符號 AWS 搜索

以下是https://docs.aws.amazon.com/cloudsearch/latest/developerguide/text-processing.html的片段

Amazon CloudSearch 中的文本處理... 在標記化期間,使用 Unicode 文本分割算法中定義的斷字規則將字段中文本的 stream 拆分為可檢測邊界上的單獨標記。

根據分詞規則,由空格分隔的字符串(例如空格和制表符)被視為單獨的標記。 在許多情況下,標點符號被丟棄並被視為空格。 例如,字符串在連字符 (-) 和 at 符號 (@) 處拆分。 但是,后面沒有空格的句點被視為令牌的一部分。

據我了解, texttext-array字段是根據分析方案進行標記的(在我的情況下是英文)。 文本被標記化, -符號是一個分詞標記。

該字段不需要標記。 將索引類型更新為literal會阻止該字段上的所有標記化,這允許我的問題中的查詢返回預期結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM