我将向你展示我的弹性配置,以及我是如何在Lucene上复制它的。
这是我创建索引的弹性搜索连接器:
"analysis": {
"analyzer": {
"default": {
"tokenizer": "standard",
"filter": [ "lowercase", "asciifolding" ]
}
}
}
以下是我的疑问:
"query": {
"dis_max": {
"queries": [
{ "match": { "field1": "${term}" }}
],
"tie_breaker": 1
}
}
"query": {
"dis_max": {
"queries": [
{ "match": { "field1": "${term}" }},
{ "match": { "field2": "${term}" }},
{ "match": { "field2": "${term}" }}
],
"tie_breaker": 1
}
}
val CustomStringFieldType: FieldType = {
val fieldType = new FieldType()
fieldType.setStoreTermVectors(true)
fieldType.setStoreTermVectorPositions(true)
fieldType.setOmitNorms(false)
fieldType.setTokenized(true)
fieldType.setStored(false)
fieldType.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS)
fieldType.freeze()
fieldType
}
def query1(tokens: Seq[String]): Query = {
var booleanQueryBuilder = new BooleanQuery.Builder()
for (token <- tokens) {
booleanQueryBuilder = booleanQueryBuilder.add(
new TermQuery(new Term("field1", token)),
BooleanClause.Occur.SHOULD)
}
booleanQueryBuilder.build()
}
def query2(tokens: Seq[String]): Query = {
val queries = new java.util.ArrayList[Query]()
for (field <- ("field1", "field2", "field3") {
var booleanQueryBuilder = new BooleanQuery.Builder()
for (token <- tokens) {
booleanQueryBuilder = booleanQueryBuilder.add(
new TermQuery(new Term(field, token)),
BooleanClause.Occur.SHOULD)
}
val booleanQuery: BooleanQuery = booleanQueryBuilder.build()
queries.add(booleanQuery)
}
new DisjunctionMaxQuery(queries, broadQueryTieBreaker)
}
明显的区别在于您的映射设置。
当您在Lucene中选择具有以下内容时
fieldType.setStoreTermVectors(true)
fieldType.setStoreTermVectorPositions(true)
fieldType.setOmitNorms(false)
fieldType.setTokenized(true)
fieldType.setStored(false)
fieldType.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS)
默认情况下,在ElasticSearch中:
PUT my_index
{
"mappings": {
"_doc": {
"properties": {
"text": {
"type": "text",
"term_vector": "with_positions"
}
}
}
}
}
我刚加入弹性搜索公司。而不知道如何在JSON请求中对索引和an类型发出正确的请求?(所以我不想像localhost:9200/myindex/mytype/_search那样在URL中使用索引和类型,而是向localhost:9200/_search发出JSON请求) 我试过这样的东西。但我得到的结果是'AAA'索引而不是'BBB'索引。如何只从bbb索引得到结果或者根本没有结果?
我有以下格式的弹性搜索文档 } } 我的要求是,当我搜索特定字符串(string.string)时,我只想获得该字符串的FileOffSet(string.FileOffSet)。我该怎么做? 谢谢
我是弹性搜索新手,并且已经完成了类似mykong教程的基本教程 我对创建任何文档的一部分有疑问 创建操作示例插入包含 /mkyong/posts/1001和以下请求数据的新文档: 问题1:-ES是否会在上述文档的所有属性上创建反向索引,即默认情况下的标题/类别/已发布/作者,并提供全文搜索,还是需要明确提及? 问题2:-在上述示例中,我们已经有了唯一的\u id,即。如果我已经将其存储在DB中并生
我有大量相同类型的实体,每个实体都有大量属性,并且我只有以下两种选择来存储它们: 将每个项存储在索引中并执行多索引搜索 将所有enties存储在单个索引中,并且只搜索1个索引。 一般而言,我想要一个时间复杂度之间的比较搜索“N”实体与“M”特征在上述每一种情况!
我正在LDAP服务器上工作。它有弹性搜索。我必须用一些Javascript代码(JSON格式)发送查询。 这是我的查询: 我试图打印所有结果,其中“server”=“server\u name”(该字段是server:server\u name…)。我认为关于弹性搜索的文档太小了。我找到了一些文档,但都是一样的,对新用户没有帮助。这个例子太简单了。 此查询返回所有结果,包括任何筛选器。 Ps:这就
如何获得空数组和美国的结果和