PayloadVersusTypeSpanQuery
De JDONREF Wiki
Ensure tokens with a give payload are all matched if document match the specified type.
For example, the document of type "road" :
{ "fullName": "BOULEVARD|1003 DE|1003 PARIS|1003 L|2002 HOPITAL|2002" }
where payload 1003 means 3 tokens with payload 1
and payload 2002 means 2 tokens with payload 2
indexed with a mapping like :
"fullName" : {"type": "string", "term_vector" : "with_positions_offsets_payloads", "index_analyzer":"myAnalyzer"}
and settings like :
{ "index" : { "analysis" : { "analyzer": { "myAnalyzer" : { "type" : "custom", "tokenizer" : "whitespace", "filter" : ["delimited_payload_filter", "lowercase"] }, "filter" : { "delimited_payload_filter" : { "type": "delimited_payload_filter", "delimiter" : "|", "encoding" : "int" } } }
will not match the request :
curl -XPOST 'http://localhost:9200/_search' -d '{ "query": { "span_payloadversustype" : { "clauses" : [ { "span_termvectormultipayloadterm" :{ "fullName" : "BOULEVARD"}} , { "span_termvectormultipayloadterm" :{ "fullName" : "HOPITAL"}} , { "span_termvectormultipayloadterm" :{ "fullName" : "PARIS"}} ] }, "requiredpayloads" : [ { "type": "road", "payloads": [ 1 ] } ], "termcountpayloadfactor" : 1000 } }'
because it miss the token 'DE' which got payload 1003 (that means one of 3 tokens with payload 1).
The "termcountpayloadfactor" is applyed on the token payload in order to get
- the total number of token matches the same payload (eg 1003%1000) ;
- the relative payload (eg 1003/1000);