elasticsearch ElasticSeach-获取不完整词和复数词
我有一个使用Elastica客户端在ElasticSearch中编制索引的产品目录 在实现搜索时,我在键入的搜索词后添加了
elasticsearch ElasticSeach-获取不完整词和复数词,
elasticsearch,elastica,
elasticsearch,Elastica,我有一个使用Elastica客户端在ElasticSearch中编制索引的产品目录 在实现搜索时,我在键入的搜索词后添加了*,这样当键入whis或whisk时,他就已经开始看到whisky的搜索结果了 但我想在键入poster时显示poster的结果 我能够使用snowball过滤器实现从复数到单数的结果。但是为了让它工作,我必须删除* 这是不好的,因为在输入完整单词之前不会显示结果 你知道我该怎么做吗?我的分析器代码:(取自) 我使用了自定义功能 我使用准确的搜索短语进行搜索,而不使用*。我的
*
,这样当键入whis
或whisk
时,他就已经开始看到whisky
的搜索结果了
但我想在键入poster
时显示poster
的结果
我能够使用snowball
过滤器实现从复数到单数的结果。但是为了让它工作,我必须删除*
这是不好的,因为在输入完整单词之前不会显示结果
你知道我该怎么做吗?我的分析器代码:(取自)
我使用了自定义功能 我使用准确的搜索短语进行搜索,而不使用
*
。我的代码查找结果计数。如果它是一个不完整的单词,它可能会返回一个空结果。因此,我在结果查询中附加了一个*
,并进行了另一次搜索
这使我的自动建议结果速度变慢,但功能正常。Bump!有人知道什么吗?
'analysis' => array(
'analyzer' => array(
'indexAnalyzer' => array(
'type' => 'custom',
'tokenizer' => 'whitespace',
'filter' => array('lowercase', 'mySnowball')
),
'searchAnalyzer' => array(
'type' => 'custom',
'tokenizer' => 'whitespace',
'filter' => array('lowercase', 'mySnowball')
)
),
'filter' => array(
'mySnowball' => array(
'type' => 'snowball',
'language' => 'English'
)
)
)