user2666618
user2666618

Reputation: 71

Why Vepsa easily warning me " This may lead to recall and ranking issues."

I am doing parent-child mode, but when i deploy, vespa warn lots of my fields about "This may lead to recall and ranking issues."

finally I found that, i easy the problem to just one sd file

search vp001 {
    document vp001 {
        field saleno type string {
            indexing: attribute | summary
            attribute: fast-search
        }
        
        field salename type string {
            indexing: attribute | summary
            attribute: fast-search
        }
    }
    
    fieldset default {
        fields: saleno, salename
    }
}

if I change saleno type from string to int, vespa will warning me again

Uploading application package ... done

Success: Deployed myproject
WARNING For schema 'vp001', field 'saleno': The matching settings for the fields in fieldset 'default' are inconsistent (explicitly or because of field type). This may lead to recall and ranking issues.
WARNING For schema 'vp001', field 'saleno': The normalization settings for the fields in fieldset 'default' are inconsistent (explicitly or because of field type). This may lead to recall and ranking issues.
WARNING For schema 'vp001', field 'saleno': The stemming settings for the fields in the fieldset 'default' are inconsistent (explicitly or because of field type). This may lead to recall and ranking issues.

Why ? Do I need to make sure all fileds in filedset to be the same type ? And I found that I cannot mixed "index" and "attribute" filed in fieldset, if i do so, the warning will appear too.

If not the same type, the warning appear, what ranking issues will happen ?

Upvotes: 1

Views: 143

Answers (1)

Jon
Jon

Reputation: 2339

Yes, you see this warning whenever you put fields with different kinds of tokenization in the same fieldset. This is because a given piece of text searching one fieldset is tokenized just once, so there's no right choice of tokenization in this case.

Attributes and text indexes are tokenized differently (exact match vs. tokenized match), so you'll see this then.

In most cases you know whether a given text should match an unstructured text field (a string index field), or some structured data, so doing this is just an error. Otherwise, you need to use query expansion instead of a fieldset: Expand the query to search these fields separately, either on the client side, or in a Searcher component.

Upvotes: 3

Related Questions