关于EdgeNgram如何对待数字的任何想法?
我正在使用ElasticSearch后端运行干草堆。我创建了EdgeNgram类型的索引字段。该字段将包含一个字符串,其中可能包含单词和数字。
当我使用部分单词对该字段进行搜索时,它会按预期运行。但是,如果输入部分数字,则不会得到想要的结果。
例:
我通过键入“ edgen”搜索索引字段“ EdgeNgram 12323”,然后将索引返回给我。如果我通过键入“ 123”来搜索相同的索引,那么我什么也没得到。
有什么想法吗?
如果您使用edgeNGram令牌生成器,则它将“ EdgeNGram 12323”视为单个令牌,然后在其上应用edgeNGram’ing进程。例如,如果min_grams = 1 max_grams = 4,您将获得以下标记的索引:[“ E”,“ Ed”,“ Edg”,“ Edge”]。所以我想这不是您真正要寻找的-考虑改用edgeNGram令牌过滤器:
如果您使用的是edgeNGram令牌过滤器,请确保您使用的令牌生成器实际上将文本“ EdgeNGram 12323”令牌化以产生两个令牌:[“ EdgeNGram”,“ 12323”](标准或空白令牌生成器将做到这一点)。然后在其旁边应用edgeNGram过滤器。
通常,edgeNGram将采用“ 12323”并产生诸如“ 1”,“ 12”,“ 123”等的令牌。