我在搜索/索引中非常新,我正在使用Symfony的FosElasticaBundle向Web应用程序提供搜索功能。直到我发现默认设置只允许全文搜索时,我已经设置并运行了,没有任何问题。FOSElasticaBundle/elasticsearch部分词匹配配置
然后,我尝试了几个小时,使部分单词匹配没有运气。我尝试了nGram和edgenGram等,但我真的很困惑所有的概念。我确实尝试搜索有关概念和配置的教程,但没有真正获得答案。
这里是我的配置:
fos_elastica:
clients:
default: { host: localhost, port: 9200 }
serializer:
callback_class: FOS\ElasticaBundle\Serializer\Callback
serializer: serializer
indexes:
website:
client: default
finder: ~
settings:
index:
analysis:
analyzer:
index_analyzer:
tokenizer: "nGram"
filter: ["lowercase", "snowball"]
search_analyzer:
tokenizer: "nGram"
filter: ["lowercase", "snowball"]
filter:
snowball:
type: "snowball"
language: "English"
types:
client:
mappings:
BusinessName: { boost: 10 }
users:
type: "object"
properties:
firstName: { boost: 5 }
lastName: { boost: 5 }
email: { boost: 10 }
persistence:
driver: orm # orm, mongodb, propel are available
model: E1\Bundle\CoreBundle\Entity\Client
listener:
provider: ~
finder: ~
该文档是没有帮助的。任何人都可以给我一些关于如何获得部分词汇匹配集和/或让我知道我在哪里可以找到关于概念(tokenizer,过滤器,分析器)的教程?
但是在开始或者在中间或者结束时,使用('Po *')将获得所有'Po'或'po'文件,无论放置在哪里。有没有办法限制搜索,只有以'po'开头的元素才能找到? –