Preheat the oven to 350 degrees F. Spread the walnuts on a baking sheet; roast until golden, about 12 minutes. Soak the shallot in cold water, 10 minutes, then drain and rinse. Toss the cabbage with 1 teaspoon salt in a large bowl.
Whisk the vinegar, lemon juice, mustard, sugar and 1/2 teaspoon pepper in another bowl. Gradually whisk in the olive oil, then the creme fraiche. Stir in the celery and shallots. Add to the cabbage and toss. Cover and chill at least 30 minutes or up to 6 hours. Before serving, thinly slice the endive lengthwise and toss with the cabbage mixture; season with salt and pepper. Sprinkle with the nuts.