2016-09-16 62 views
0

我一直在使用Elasticsearch了一段時間,但我似乎無法找到解決這一具體問題的分析: 我有一個包含以下文本的文件:如何使用ElasticSearch搜索複合詞?

"The Harry Potter and the Sorcerer Stone is a great book". 

如果用戶鍵入「哈利·波特」 (不含空格),我需要能夠將該文檔顯示爲搜索結果。可能嗎? 我看着NGRAM,但它似乎並沒有解決與NGRAM這種情況下堂妹,我會整個文檔存儲爲:

"TheHarryPotterandtheSorcererStoneisagreatbook". 

這是不是我想要的堂妹,如果用戶搜索「哈利·波特石頭「,文件也不會顯示出來。

回答

0

您可以使用「token_chars」:在你的ngram配置[「字母」,「數字」,「空白」]也指數的空格,這將符合您查詢的「哈利·波特石」和「哈利·波特」

REF: https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-ngram-tokenizer.html

編輯: 您也索引「的ngram」中的內場和版本然後查詢都正常分析字段和的ngram字段(包裝在一個布爾查詢)

+0

由於對於提示,讓我先嚐試一下。 – dickyj