簡體   English   中英

在Elasticsearch上使用query_string在字符串字段中搜索數字

[英]Searching a number in a string field with query_string on Elasticsearch

在其他文本字段中,我的Elasticsearch索引中包含以下字符串字段:

"user": { "type": "string", "analyzer": "simple", "norms": { "enabled": False } }

它充滿了典型的用戶名,例如“ simon”。

使用query_string,我可以將針對“其他搜索字詞”的搜索結果限制為該特定用戶:

'query': { 'query_string': { 'query': 'user:simon other search terms' } }

默認運算符設置為“ AND”。 但是,如果用戶名僅包含一個數字(保存並索引為字符串),Elasticsearch似乎會忽略“ user:...”語句。 例如:

'query': { 'query_string': { 'query': 'user:111 other search terms' } }

產生與以下結果相同的結果

'query': { 'query_string': { 'query': 'other search terms' } }

任何想法可能是什么原因或如何解決?

您正在使用simple詞器。 文檔所述

使用小寫記號生成器構建的簡單類型的分析器。

小寫標記器使用字母標記器和小寫標記過濾器 特定測試數據的問題在於字母標記器將文本分為非字母形式。 數字是非字母。 Java API中的此方法定義了確切的字母。 相反, Java API中的此方法定義了確切的數字。

您可能需要查看standard標記器。

暫無
暫無

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

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